首页 > 解决方案 > 此错误消息是什么意思,我该如何解决这个问题?

问题描述

我最近开始学习 java 并且对扫描仪和一般输入感到很困惑。对于这个例子,我的输出正是它所需要的,但我收到一条奇怪的错误消息,这是什么意思,我的错误是什么?

代码,如果它看起来非常无组织,很抱歉,但这是我第一次写这么长的东西。

import java.util.*;

class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String b = sc.next();
        String c = sc.next();
        String d = sc.next();
        String e = sc.next();
        String f = sc.next();
        String g = sc.next();
        String h = sc.next();
        String i = sc.next();
        String j = sc.next();
        String k = sc.next();
        String l = sc.next();
        String m = sc.next();
        String n = sc.next();
        String o = sc.next();
        String p = sc.next();

        System.out.println(h);
        System.out.println(g);
        System.out.println(f);
        System.out.println(e);
        System.out.println(d);
        System.out.println(c);
        System.out.println(b);
        System.out.println(a);
        System.out.println(p);
        System.out.println(o);
        System.out.println(n);
        System.out.println(m);
        System.out.println(l);
        System.out.println(k);
        System.out.println(j);
        System.out.println(i);
    }
}

错误信息:

Failed test #1 of 3. Runtime error

Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.Scanner.throwFor(Scanner.java:937)
    at java.base/java.util.Scanner.next(Scanner.java:1478)
    at Main.main(Main.java:15)

标签: java

解决方案


在 3 的测试 #1 中,此时可能没有元素传递给您的程序

您应该检查hasNext(),在访问下一个元素之前调用该方法:

if (sc.hasNext()) {
    value = sc.next();
}

来自官方 Java文档

抛出: NoSuchElementException - 如果没有更多的令牌可用


推荐阅读