我有一个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);
}
答案 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,然后对这些数字求和。
当然不是打印,你可以将它添加到总和列表中,或者立即附加到你的行中。