文件中例如1饭钱1000 2房租2000 这样的数据怎么把后面的花费相加输出?

来源:互联网 发布:网络ip与本地ip 编辑:程序博客网 时间:2024/04/30 12:26
文件内容:
1饭钱10002房租20003请客5004修车7005买礼物6006在58同城会员注册19910熬夜写代码5012朋友结婚礼钱100023American电影160191路上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);}@Overridepublic String toString() {return payNumber + "." + payWhere + "  " + payMoney;}}


阅读全文
1 0
原创粉丝点击