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

解决方案 »

  1.   

    键值对关系   
    在文本中写的格式如果是
           键=值
    的格式可以使用properties集合load方法和store方法
      

  2.   

    2房租2000
    数据的类型是String吗?我认为可以做一个截取,然后在相加
      

  3.   

    用properties读取文本信息后  再计算
      

  4.   

    我和3 楼 想法差不多,就是从文本文件中拿你写的数据内容,转换为String字符串类型,然后 split()方法对获取的每一行数据截取,
    分别拿到序号:1、2,
    消费去向:房租、饭钱
    消费金额:1000、2000
     然后将3 个值再拼接为字符串输出,想要对这些数据进行算术运算(加减乘除)只需要对代码中对取到的消费金额进行  加减乘除就 ok了   就这样,不明白、或者需要示例代码的话,明天我帮你写测试代码,给你参考
      

  5.   


    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)