JAVA怎么把文本文档里的数字相加 例如1饭钱10002房租2000是这样的数据怎么把后面的花费相加输出? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 键值对关系 在文本中写的格式如果是 键=值的格式可以使用properties集合load方法和store方法 2房租2000数据的类型是String吗?我认为可以做一个截取,然后在相加 用properties读取文本信息后 再计算 我和3 楼 想法差不多,就是从文本文件中拿你写的数据内容,转换为String字符串类型,然后 split()方法对获取的每一行数据截取,分别拿到序号:1、2,消费去向:房租、饭钱消费金额:1000、2000 然后将3 个值再拼接为字符串输出,想要对这些数据进行算术运算(加减乘除)只需要对代码中对取到的消费金额进行 加减乘除就 ok了 就这样,不明白、或者需要示例代码的话,明天我帮你写测试代码,给你参考 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; String money = ""; String where = ""; while ((s = br.readLine()) != null) { char[] arr = s.toCharArray(); for (int i = 0; i < arr.length; i++) { if (i == 0) { rd.setPayNumber(arr[0] - 48); } else if (!Character.isDigit(arr[i])) { where += arr[i]; } else { money += arr[i]; } } rd.add(Integer.parseInt(money)); rd.setPayWhere(where); rd.setPayMoney(Integer.parseInt(money)); System.out.println(rd.toString()); where = ""; money = ""; } rd.print(); br.close(); }}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 void add(int payMoney) { sum += payMoney; } public void print() { System.out.println("本次消费总额: " + sum); } @Override public String toString() { return payNumber + "." + payWhere + " " + payMoney; }}抱歉,今天周日没有及时查看论坛,晚上跑完步后看到了lz的回复,亲自测试了一下,遇到了几个小问题,现在都解决了,你看一下和你想要的效果一样么?代码中我用的不是split分隔字符串,而是把字符串转换为字符数组,然后取数据,这其中还有一些问题我考虑到了,但是还没想到解决方案,所有就先把目前的成果给你看一下,是否满足你的功能需求(我提到的问题是:消费去向中可能也存在数字,比如58同城会员注册,双11买衣服……如果这些字符在你的文件里,可能取值会影响,不过我会继续考虑不足的情况,尽量做到没有bug) 分层的问题 java mail 发送html格式邮件遇到的问题 这个程序错在哪里啊? java动态增加 高手 求救 关于equals的问题 有人研究过Jedit的源代码没有? 一段关于对象序列化的代码,帮忙看看 为什么这个程序无法获得串口。 jar的使用问题!!!!! Java小问题求帮助(小白一个) 一个有意思的BUG 分析疑惑
在文本中写的格式如果是
键=值
的格式可以使用properties集合load方法和store方法
数据的类型是String吗?我认为可以做一个截取,然后在相加
分别拿到序号:1、2,
消费去向:房租、饭钱
消费金额:1000、2000
然后将3 个值再拼接为字符串输出,想要对这些数据进行算术运算(加减乘除)只需要对代码中对取到的消费金额进行 加减乘除就 ok了 就这样,不明白、或者需要示例代码的话,明天我帮你写测试代码,给你参考
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;
String money = "";
String where = "";
while ((s = br.readLine()) != null) { char[] arr = s.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (i == 0) {
rd.setPayNumber(arr[0] - 48);
} else if (!Character.isDigit(arr[i])) {
where += arr[i];
} else {
money += arr[i];
}
}
rd.add(Integer.parseInt(money));
rd.setPayWhere(where);
rd.setPayMoney(Integer.parseInt(money));
System.out.println(rd.toString());
where = "";
money = "";
}
rd.print();
br.close();
}
}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 void add(int payMoney) {
sum += payMoney;
} public void print() {
System.out.println("本次消费总额: " + sum);
} @Override
public String toString() {
return payNumber + "." + payWhere + " " + payMoney;
}}
抱歉,今天周日没有及时查看论坛,晚上跑完步后看到了lz的回复,亲自测试了一下,遇到了几个小问题,现在都解决了,你看一下和你想要的效果一样么?代码中我用的不是split分隔字符串,而是把字符串转换为字符数组,然后取数据,这其中还有一些问题我考虑到了,但是还没想到解决方案,所有就先把目前的成果给你看一下,是否满足你的功能需求(我提到的问题是:消费去向中可能也存在数字,比如58同城会员注册,双11买衣服……如果这些字符在你的文件里,可能取值会影响,不过我会继续考虑不足的情况,尽量做到没有bug)