scan.hasNext()在While循环中的代码中打印最后一行之前中断了吗?

时间:2013-01-30 19:46:54

标签: java loops while-loop

为什么这个循环不打印我在其他地方保存的.txt文件中的最后一行?它打印出除最后一行之外的所有行。

int count = 0;

Courses[] POS = new Courses[26];

while (scan.hasNext())
{
    POS[count] = new Courses(scan.nextLine());

    System.out.println(POS[count]);
    scan.nextLine();

    count++;
}

2 个答案:

答案 0 :(得分:1)

您将获得下一行两次。你很幸运它没有抛出NPE或其他例外:P

答案 1 :(得分:0)

我认为问题在于,正如评论中指出的那样,你正在调用scan.nextLine()两次。

如果你有一个偶数行的行,那就意味着这会打印出所有其他行。如果你有一个奇数编号的行,这意味着它会打印出每隔一行,然后抛出一个异常(NoSuchElement我相信?)

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html#nextLine