0

我有一个 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();
    }
}
4

3 回答 3

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);
    }
于 2013-01-10T20:47:07.343 回答
1

您打印sumOf的不是列表。当然,这是一个数字。

此外,您应该在对它们求和之前阅读这些数字。

于 2013-01-10T20:46:50.657 回答
0

逐行阅读,适当命名变量。从文件中读取后,遍历列表并求和。

 while (scanner.hasNextLine()) {
    String line = scanner.nextLine();
    System.out.println(line);
 }
于 2013-01-10T20:48:58.667 回答