java.util.Scanner中的java.util.NoSuchElementException

时间:2015-04-18 12:53:45

标签: java java.util.scanner

我正在HackerEarth解决问题,我无法弄清楚为什么我的程序在我的命令行上正确运行并给出了正确的结果,但是在代码编辑器上运行时它会给出java.util.NoSuchElementException异常。

我搜索过但无法解决。

import java.util.Scanner;

public class TestClass {
    public static int[][] arr = null;
    public static int[][] dp = null;

    public static void main(String[] args) {
        int N, M, T;
        int min;
        int count = 0;
        Scanner scan = new Scanner(System.in);

        N = scan.nextInt();
        M = scan.nextInt();

        arr = new int[N][M];
        dp = new int[N + 1][M + 1];

        for (int i = 0; i < N; ++i) {
            for (int j = 0; j < M; ++j) {
                arr[i][j] = scan.nextInt();   //line 26
            }
        }

        for (int i = 0; i < M + 1; ++i)
            dp[0][i] = 0;

        for (int i = 0; i < N + 1; ++i)
            dp[i][0] = 0;

        for (int i = 1; i < N + 1; ++i) {
            for (int j = 1; j < M + 1; ++j) {
                if (arr[i - 1][j - 1] == 0) {
                    min = Math.min(dp[i - 1][j], Math.min(dp[i]
                        [j - 1], dp[i - 1][j - 1]));
                    dp[i][j] = min + 1;
                } else
                    dp[i][j] = 0;
            }
        }

        count = 0;
        for (int i = 1; i < N + 1; ++i) {
            for (int j = 1; j < M + 1; ++j) {
                if (dp[i][j] != 0)
                    count += dp[i][j];
            }
        }
        System.out.println("" + count);
    }//main
}//class

例外:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextInt(Scanner.java:2160)
    at java.util.Scanner.nextInt(Scanner.java:2119)
    at TestClass.main(editor_trsource_1429355115_85417.java:26)

2 个答案:

答案 0 :(得分:3)

这意味着您没有来自标准输入的数据,并且您试图从同一时间获取nextInt。您应该使用hasNextInt来检查您是否有消费者的数据,如:

if (scanner.hasNextInt()) {
   //read nextInt();
}

答案 1 :(得分:0)

如果您在编程竞赛中提交在线编辑器的解决方案,请尝试刷新浏览器。