JAVA怎么把文本文档里的数字相加

qq_36836872 2017-11-17 09:05:20
例如1饭钱1000
2房租2000
是这样的数据怎么把后面的花费相加输出?
...全文
938 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Clumsy__Cat 2017-11-21
  • 打赏
  • 举报
回复
10唱歌500,这样的不行吧
Shymaizi 2017-11-21
  • 打赏
  • 举报
回复
如果每一行不止有一个数字呢,比如我把第一行第二行合并
迟到_啦 2017-11-20
  • 打赏
  • 举报
回复
熬夜做完了终于
qq_36836872 2017-11-19
  • 打赏
  • 举报
回复
引用 6 楼 qq_19314763 的回复:
我和3 楼 想法差不多,就是从文本文件中拿你写的数据内容,转换为String字符串类型,然后 split()方法对获取的每一行数据截取, 分别拿到序号:1、2, 消费去向:房租、饭钱 消费金额:1000、2000 然后将3 个值再拼接为字符串输出,想要对这些数据进行算术运算(加减乘除)只需要对代码中对取到的消费金额进行 加减乘除就 ok了 就这样,不明白、或者需要示例代码的话,明天我帮你写测试代码,给你参考
嗯好的谢谢,拜托大神了。
迟到_啦 2017-11-19
  • 打赏
  • 举报
回复


这是测试结果图,你也可以自己测试查看
迟到_啦 2017-11-19
  • 打赏
  • 举报
回复

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)
爱写Bug的麦洛 2017-11-18
  • 打赏
  • 举报
回复
2房租2000 数据的类型是String吗?我认为可以做一个截取,然后在相加
迟到_啦 2017-11-18
  • 打赏
  • 举报
回复
我和3 楼 想法差不多,就是从文本文件中拿你写的数据内容,转换为String字符串类型,然后 split()方法对获取的每一行数据截取, 分别拿到序号:1、2, 消费去向:房租、饭钱 消费金额:1000、2000 然后将3 个值再拼接为字符串输出,想要对这些数据进行算术运算(加减乘除)只需要对代码中对取到的消费金额进行 加减乘除就 ok了 就这样,不明白、或者需要示例代码的话,明天我帮你写测试代码,给你参考
迟到_啦 2017-11-18
  • 打赏
  • 举报
回复
引用 3 楼 Milogenius 的回复:
2房租2000 数据的类型是String吗?我认为可以做一个截取,然后在相加
对 拿到每一行数据,然后截取之后分别存放到序号,消费名称和消费金额的对象中,最后全部输出
qq_36836872 2017-11-18
  • 打赏
  • 举报
回复
引用 1 楼 weixin_41088381 的回复:
键值对关系 在文本中写的格式如果是 键=值 的格式可以使用properties集合load方法和store方法
就是举例的那样的格式
煜碎梦 2017-11-18
  • 打赏
  • 举报
回复
用properties读取文本信息后 再计算
一元钱包邮 2017-11-17
  • 打赏
  • 举报
回复
键值对关系 在文本中写的格式如果是 键=值 的格式可以使用properties集合load方法和store方法

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧