Java读取txt银行账户数据时将String类型余额转换为double的方法
代码修改方案
你需要使用JDK内置的Double.parseDouble()方法完成字符串到double的类型转换,同时建议增加异常处理逻辑避免文件内容格式错误导致程序崩溃。
修改后完整代码
public static ArrayList<Account> readAccounts(Scanner input){ String row; String[] column; ArrayList<Account> accounts = new ArrayList<>(); while(input.hasNext()){ row = input.nextLine(); column = row.split(";"); // 先做列数校验,避免数组越界 if(column.length < 3){ System.out.println("跳过格式错误行:" + row); continue; } try { // 核心:将column[2]从String转为double double balance = Double.parseDouble(column[2].trim()); Account account = new Account(column[0], column[1], balance); // 原代码的account.toString()无实际作用,如需打印可改成下行 // System.out.println(account); accounts.add(account); } catch (NumberFormatException e) { System.out.println("跳过余额格式错误行:" + row + ",错误原因:" + e.getMessage()); } } return accounts; }
核心修改点说明
- 类型转换实现:通过
Double.parseDouble(column[2].trim())转换字符串余额,增加trim()处理是为了兼容字段前后的空格 - 异常兼容:新增列数校验、数字格式异常捕获逻辑,遇到非法行时跳过不终止整体读取流程
- 冗余代码清理:原代码中单独调用
account.toString()没有任何输出/赋值作用,已注释,如需调试打印可替换为输出语句
内容的提问来源于stack exchange,提问作者Rgt
相关产品推荐
相关产品推荐

