文件中例如1饭钱1000 2房租2000 这样的数据怎么把后面的花费相加输出?
2017-11-20 01:56
369 查看
文件内容:
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; } }
相关文章推荐
- 要求通过java读取文本并把文本中的每一行后面的三个成绩相加, 最后按从大到小的顺序输出到另一个文本文件中.
- 怎么编程你输进去一个数据 然后输出的会是一组数列 其中前两个数字之和等于第三个数字。例如你输入7, 输出会显示1,2,3,5,8,13,21(每行显示一个数)
- 求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。例如若n为1000时,函数值应为:s=153.909064。
- 怎么把Microsoft sql server 2000 的数据导出.sql文件
- 有这样一些5位数,它的前两位和后两位能被6整除,中间一位也能被6整除,例如12000、12012、12612,编程统计满足条件的数据个数并输出这些数;
- 4程序员小飞原计划三天完成某个任务,现在是第三天的下午,他马上就可以做完。但是在实现功能的过程中,他越来越意识到自己原来设计中的弱点,他应该采取另一个办法,才能避免后面集成阶段的额外工作。但是他如果现在就改弦更张,那势必要影响自己原来估计的准确性,并且会花费额外的时间,这样他的老板、同事也许会因此看不起他。如果他按部就班地按既定设计完成,还要花更多时间在后续集成上,但那就不是他个人的问题了,怎么办
- 编写一个函数,在页面上输出1~1000之间所有能同时被3,5,7整除的证书,并要求每行显示6个这样的数
- 原因分析如下: 遇到这种情况,很有可能是把一个int型业务数据的 设置setText()或者类似的方法中, 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件ID, 所
- 从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
- 如何将(.MDF文件) 导入SQL Server 2008 数据库和怎么恢复_bak数据
- Java IO流将数据输出到.csv文件中,excel打开时乱码问题的解决
- ios开发——日常之XCode 文件后面带有问号的问题怎么解决??
- 磁盘文件系统损坏要怎么找回数据
- 将数据输出到文件1
- R从文件中读取数据,输出文件
- 传智播客--3G开发之单元测试,日志输出,文件数据存储,XML文件的解析
- bak文件怎么打开 2000w数据怎么打开?
- Dom解析XML文件输出的<text>是怎么回事
- FileWriter输出文件要换行,怎么操作?
- 输出1000-2000的闰年