文件内容:
1饭钱1000 2房租2000 3请客500 4修车700 5买礼物600 6在58同城会员注册199 10熬夜写代码50 12朋友结婚礼钱1000 23American电影160 191路上913公交丢钱200
package com.briup.exam; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Test { public static void main(String[] args) throws IOException { Record rd = new Record(); BufferedReader br = new BufferedReader(new FileReader("4.txt")); String s; while ((s = br.readLine()) != null) { char[] arr = s.toCharArray(); int len = arr.length; int startInfo = loopNumber(arr, rd); int endInfo= loopMoney(arr, len, rd); loopWhere(arr, startInfo, endInfo, rd); System.out.println(rd.toString()); } rd.print(); br.close(); } //循环取出【消费序列号】字段数据的方法 public static int loopNumber(char[] arr,Record rd){ String number = ""; int index = 0; while(Character.isDigit(arr[index])){ number += arr[index]; index++; } rd.setPayNumber(Integer.parseInt(number)); number = ""; return index; } //循环取出【消费去向】字段数据的方法 public static void loopWhere(char[] arr,int startInfo,int endInfo,Record rd){ String where = ""; for(int i=startInfo;i<endInfo;i++){ where += arr[i]; } rd.setPayWhere(where); where = ""; } //循环取出【消费金额】字段数据的方法 public static int loopMoney(char[] arr,int len,Record rd){ String money = ""; int index = len; while(Character.isDigit(arr[index-1])){ money = arr[index-1] + money; index--; } rd.setPayMoney(Integer.parseInt(money)); rd.add(Integer.parseInt(money)); // System.out.println(rd.add(Integer.parseInt(money))); money = ""; return index; } } class Record { private int payNumber; private String payWhere; private int payMoney; private int sum; public Record() { } public Record(int payNumber, String payWhere, int payMoney) { this.payMoney = payMoney; this.payNumber = payNumber; this.payWhere = payWhere; } public int getPayNumber() { return payNumber; } public void setPayNumber(int payNumber) { this.payNumber = payNumber; } public String getPayWhere() { return payWhere; } public void setPayWhere(String payWhere) { this.payWhere = payWhere; } public int getPayMoney() { return payMoney; } public void setPayMoney(int payMoney) { this.payMoney = payMoney; } public int add(int payMoney) { sum += payMoney; return sum; } public void print() { System.out.println("本次消费总额: " + sum); } @Override public String toString() { return payNumber + "." + payWhere + " " + payMoney; } }