我有一个包含 n 行整数的文件。我想在每一行中添加每个 int 并打印它们(所以我应该在末尾打印 3 个 int,每个 int 一行)。
我尝试了这个,但它会读取并添加第一个循环中的所有整数。
scan = new Scanner(new BufferedReader(new FileReader("input.txt")));
int n = scan.nextInt();
for (int i = 0; i < n; i++) {
while (scan.hasNextLine()) {
sum += scan.nextInt();
}
System.out.println(sum);
sum = 0;
}
最佳答案
此行为是由错误使用循环和扫描引起的。 正确的解决方案之一还结合了 java 8 lambda,假设文件中整数的分隔符是空格(“”):
Path path = Paths.get("your path");
try{
Files.lines(path)
.map( line -> line.split(" "))
.mapToInt( numbers -> Arrays.stream(numbers)
.reduce(0 , (sum, num) -> sum + Integer.parseInt(num), (first, second) -> first + second ))
.forEachOrdered(System.out::println);
} catch (IOException e){
e.printStackTrace();
}
关于java - 如何从Java文件中读取一行中的每个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56314600/