我是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));
}
}
}
}
答案 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);
}
}