Java 银行系统:处理无效输入和字母转换

本文介绍一个 Java 银行系统,该系统可以处理柜员的存钱和支出操作。柜员通过调用 income(String in, String out) 方法向银行系统中录入存钱(即 in)和支出(即 out)的情况。

系统需要满足以下要求:

  • 存钱必须表示为正值,支出必须表示为负值。
  • 每次 income() 调用完毕后,账户里的余额必须为非负值。
  • 由于柜员的误操作可能输入一些字母,系统需要自动将字母替换成对应的 ASCII 码值。

以下是可能的解决方案:

public class BankSystem {
    private int balance;

    public BankSystem() {
        balance = 0;
    }

    public void income(String in, String out) throws Exception {
        int inValue = parseValue(in);
        int outValue = parseValue(out);

        if (inValue < 0 || outValue > 0 || balance - outValue < 0) {
            throw new Exception("Invalid input");
        }

        balance += inValue - outValue;
    }

    private int parseValue(String value) {
        int result = 0;
        for (char c : value.toCharArray()) {
            if (Character.isDigit(c)) {
                result = result * 10 + (c - '0');
            } else {
                result = result * 100 + c;
            }
        }
        return result;
    }
}

在该实现中,income() 方法首先将输入的字符串转换为表示存款和支出的整数值。如果任何一个值无效(即存款为负值,支出为正值或余额不足),则抛出异常。否则,将存款值加上并减去支出值,以更新余额。

为了处理字母,parseValue() 方法将字符串中的数字字符转换为整数值,并将非数字字符转换为对应的 ASCII 码值。例如,字符串 '3A32' 将被转换为整数值 36532。

Java 银行系统:处理无效输入和字母转换

原文地址: https://www.cveoy.top/t/topic/nWbu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录