提交时为NoSuchElementException

时间:2013-11-18 19:52:06

标签: java nosuchelementexception

我是Comp Sci学生,我的大学有一个ACM编程竞赛俱乐部。我刚刚开始,我正在解决其中一个问题。当我运行它时,该程序运行正常,并且不会产生任何异常。但是,当我在运行测试的网站上提交它时,它会给我:

您的应用程序中发生了异常:

线程“main”中的异常java.util.NoSuchElementException:在Main.main(Main.java:16)的java.util.Scanner.nextLine(Scanner.java:1585)中找不到行

代码:

import java.util.Scanner;
import java.util.ArrayList;

public class Main
{
public static void main(String[] args)
{
    Scanner inMain = new Scanner(System.in);
    ArrayList<String> a = new ArrayList<String>();

    int q = inMain.nextInt();

    for (int j = 0; j < q; j++)
    {
        Scanner read = new Scanner(System.in);
        String temp = read.nextLine();
        a.add(temp);
    }

    int r = inMain.nextInt();

    for (int h = 0; h < r; h++)
    {
        int selection = inMain.nextInt();
        if (selection < 0 || selection > q)
        {
            System.out.println("Rule " + selection + ": No such rule");
        } else
        {
            System.out.println("Rule " + selection + ": "
                    + a.get(selection - 1));
        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

在访问之前检查下一行是否存在

for (int j = 0; j < q; j++)
{
    Scanner read = new Scanner(System.in);
    if (read.hasNextLine()){
        String temp = read.nextLine();
        a.add(temp);
    }
}