如何修复运行时错误-线程“主”中的异常java.util.NoSuchElementException

时间:2019-03-30 05:47:26

标签: java

尝试运行程序时出现以下错误。这实际上是针对Hackerrank的“第六天让我们回顾”挑战的提交内容。

  

线程“ main”中的异常java.util.NoSuchElementException在   java.util.Scanner.throwFor(Scanner.java:862)在   java.util.Scanner.next(Scanner.java:1371)在   Solution.main(Solution.java:10)

这是我的代码:

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int T = sc.nextInt();
    for(int i=0; i<=T; i++){
        String S = sc.next();

        for(int j=0; j<S.length(); j++){
            if(j%2==0){
                System.out.print(S.charAt(j));
            }
        }

        System.out.print(" ");

        for(int r=0; r<S.length(); r++){
            if(r%2!=0){
                System.out.print(S.charAt(r));
            }
        }
        System.out.println("");

    }
}

2 个答案:

答案 0 :(得分:0)

尝试

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int T = sc.nextInt();
    for(int i=0; i<=T; i++){
        if(!sc.hasNext()) break;
        String S = sc.next();

        for(int j=0; j<S.length(); j++){
            if(j%2==0){
                System.out.print(S.charAt(j));
            }
        }

        System.out.print(" ");

        for(int r=0; r<S.length(); r++){
            if(r%2!=0){
                System.out.print(S.charAt(r));
            }
        }
        System.out.println("");

    }
}
没有下一个元素时,抛出

java.util.NoSuchElementException。为了避免这种情况,您应该使用hasNext()进行检查。

详细阅读:https://www.tutorialspoint.com/java/util/scanner_hasnext.htm

答案 1 :(得分:0)

您的代码完全正确。 由于您不使用集合或数组,因此无需放置hasNext()方法 我刚刚测试了您的代码,它运行良好。 您的错误一定是出于其他原因