将数字加在一起

时间:2017-04-10 15:05:38

标签: java arraylist

我有一个txt文件,其中数字在空格之间排成几行,我想将每行中的数字加在一起,并将金额写入行的结尾。我按换行分割文件,没关系,但我不知道如何将这些数字加在一起。

ArrayList<String> numbers = new ArrayList<>();
try {
    RandomAccessFile raf= new RandomAccessFile("numbers.txt","rw");
    while (raf.getFilePointer() < raf.length()) {
        String sor = raf.readLine();

        String newline[] = sor.split("\r\n");
        for (String item:newline) {
            numbers.add(item);
        }

    }
    // just test
    for(String item:numbers)
        System.out.println(item);

    raf.close();
}catch (IOException e) {
    System.err.println("An error was occured: "+ e);
}

2 个答案:

答案 0 :(得分:2)

您可以使用空格分割每一行作为分隔符。然后转换为数字并将它们相加。假设每个数字之间有单个空格,只有整数,你可以这样做。当标准发生变化时,您可以相应地更改代码

for(String item:numbers){
        String n[] = item.split(" ");
        for(String number: n)
            sum+= Integer.parseInt(number);
        System.out.println(sum);
        sum = 0;
}

答案 1 :(得分:2)

如果我理解正确,这里的一切都有效,那就意味着每个循环都会打印出数字以空格分隔的行?如果是,则需要:

numbers.stream().forEach(s ->
  System.out.println(Arrays.stream(s.split("\\s+")).mapToInt(Integer::parseInt).sum()));

numbers列表中获取流,然后对于我们用空格分割它的每一行,将每个数字解析为Integer,然后对这些数字求和。

当然不是打印,你可以将它添加到总和列表中,或者立即附加到你的行中。