我有一个ArrayList&我想让它读入&文件中的数字总和,但它只输出文件中的最后一个数字,它们都在不同的行等。
Here is my code, thanks in advance:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListOfNumbers {
public static void main(String[] args) throws FileNotFoundException {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
Scanner Scan = new Scanner (new File("numbers.txt"));
int sumOf = 0;
for(int i=0; i < list.size(); i++){
sumOf = sumOf + list.get(i);
}
//while scanning add sum to ArrayList List
while (Scan.hasNext())
{
sumOf = Scan.nextInt();
list.add(sumOf);
}
//print the array list
System.out.println(sumOf);
Scan.close();
}
}
答案 0 :(得分:3)
您在阅读数字之前总结了列表中的数字。
所以像这样移动你的循环:
//while scanning add sum to ArrayList List
while (Scan.hasNext())
{
int number = Scan.nextInt();
list.add(number);
}
int sumOf = 0;
for(int i=0; i < list.size(); i++){
sumOf = sumOf + list.get(i);
}
答案 1 :(得分:1)
您正在打印sumOf
而不是列表。当然这只是一个数字。
此外,你应该在总结之前阅读这些数字。
答案 2 :(得分:0)
逐行阅读,适当地命名变量。从文件中读取后,遍历列表并求和。
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}