本文介绍了使用 Java 代码实现一个简单的银行系统,该系统可以处理账户存取款操作。柜员通过调用 income(String in, String out) 方法向银行系统中录入存钱(即 in)和支出(即 out)的情况。系统根据录入信息计算账户里的最终余额。

例如,如果录入 '200''-100',则系统内当前余额为 '100'

但是,由于柜员的误操作输入了一些字母。因此,若遇到字母,需自动将字母替换成对应的 ASCII 码值(如将 '3A32' 替换为 '36532'),再进行账户余额计算。

注意,存钱必须表示为正值,支出必须表示为负值,且每次 income() 调用完毕后,账户里的余额必须为非负值。如果不满足上述任意要求,则需要抛出异常,并打印出异常的原因,同时不利用该异常录入信息计算最终余额。

以下是 Java 代码实现:

public class BankSystem {
    private double balance;

    public void income(String in, String out) throws Exception {
        double income = convertToDouble(in);
        double expense = convertToDouble(out);
        double newBalance = balance + income - expense;
        if (newBalance < 0) {
            throw new Exception("账户余额不能为负数!");
        }
        balance = newBalance;
    }

    private double convertToDouble(String str) throws Exception {
        double result;
        try {
            result = Double.parseDouble(str);
        } catch (NumberFormatException e) {
            char[] chars = str.toCharArray();
            StringBuilder sb = new StringBuilder();
            for (char c : chars) {
                sb.append((int) c);
            }
            try {
                result = Double.parseDouble(sb.toString());
            } catch (NumberFormatException ex) {
                throw new Exception("输入包含非法字符!");
            }
        }
        if (result < 0) {
            throw new Exception("存入和支出必须为正数和负数!");
        }
        return result;
    }

    public double getBalance() {
        return balance;
    }
}

// 测试代码
public class Test {
    public static void main(String[] args) {
        BankSystem bank = new BankSystem();
        try {
            bank.income("200", "-100");
            bank.income("3A32", "-342");
            bank.income("9B5H", "-FC34");
            bank.income("-300", "500");
            System.out.println("最终余额:" + bank.getBalance());
        } catch (Exception e) {
            System.out.println("录入信息出错:" + e.getMessage());
        }
    }
}

代码中 convertToDouble 方法用于将输入字符串转换为 double 类型,并处理非法字符。如果遇到字母,则将其转换为对应的 ASCII 码值。代码还包含异常处理,确保账户余额始终为非负数,并防止输入非法字符。

该代码示例演示了如何使用 Java 代码实现简单的银行系统功能,并处理输入的非法字符。你可以根据实际需求进行修改和扩展。

Java 银行系统账户余额计算:处理非法字符输入

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

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