将某些整数从文本文件读入数组列表

时间:2015-12-11 23:47:22

标签: java arraylist text-files

我必须在文本文件中读取两组整数。一个是学生可以拥有的学分数,然后下一个整数是考试中的一个字母等级。我可以将整数读入ArrayList,但问题是我想首先读取他们拥有的信用额度,然后在一定数量的信用额度或超过一定金额的情况下选择将其添加到哪个ArrayList。我不想增加学分,只是他们收到的成绩。我在文本文件中有25行整数,首先是信用量,然后是空格,然后是等级。我只需记录成绩,而不是学分。 这是我的代码到目前为止的样子:

public static void main(String[] args) throws FileNotFoundException 
{
    try
    {
        ArrayList <Integer> over15credits = new ArrayList<>();
        ArrayList <Integer> under15credits = new ArrayList<>();
        FileReader myReader = new FileReader("geomClass.txt");
        Scanner fileIn = new Scanner(myReader);

        while(fileIn.hasNextInt())
        {
            if(fileIn.nextInt() >= 15)
            {
                over15credits.add(fileIn.nextInt());

            }
            else
            {
                under15credits.add(fileIn.nextInt());
            }
            System.out.println(over15credits);
            System.out.println(under15credits);
        }
    }
    catch(FileNotFoundException e)
    {
        System.out.println("!!FILE NOT FOUND!!");
    }
}

1 个答案:

答案 0 :(得分:1)

当您执行fileIn.nextInt()时,它会读取并使用该号码,这样当您再次拨打fileIn.nextInt()时,它会读取该号码。

很可能你打算使用一个变量,这样你就可以使用你刚读过的数字。

    int num = fileIn.nextInt();
    if (num >= 15)
        over15credits.add(num);
    else
        under15credits.add(num);

您希望使用与之相同的数字而不是其他数字。

仅供参考,你也可以这样写。

    int num = fileIn.nextInt();
    (num >= 15 ? over15credits : under15credits).add(num);