我用一些使用Scanner的方法编写了一段java代码。第一种方法工作得很好,但第二种方法得到了错误堆栈
" Java . util . nosuchelementexception "。
第一种方法 maxPile 的代码:
public static int maxPile() {
Scanner scan = new Scanner(System.in);
System.out.println("enter max number of piles");
int pMax = scan.nextInt();
scan.close();
return pMax;
}
第二个方法maxMatches的代码:
public static int maxMatches() {
Scanner scan = new Scanner(System.in);
System.out.println("enter max number of matches per pile");
int mMax = scan.nextInt();
scan.close();
return mMax;
}
方法是相同的,但第一个有效,第二个无效。。。我的输出-
enter max number of piles
8
enter max number of matches per pile
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at autoNim.autoNim.maxMatches(autoNim.java:89)
at autoNim.autoNim.main(autoNim.java:12)
('8' 是我的输入,第 12 行调用方法 MaxMatches,第 89 行是 xint mMax=scan.nextInt();
这是因为您关闭了扫描仪。关闭扫描程序始终会关闭基础资源,即 System.in
。关闭 System.in
后,您将无法再使用它。
请勿关闭与 System.in
绑在一起的扫描仪。
资源只能由打开它们的人关闭。JVM在中打开了System.in,当程序完成时,它也会再次关闭它。您不负责管理
系统。在
中,请保持其打开状态。
请注意,如果要关闭扫描仪,必须确保它是异常安全的。也就是说,你需要最后用try-catch来包装它。如果可能,请使用资源尝试:
try (Scanner scanner = new Scanner(...)) {
...
}
这将在try-block之后以异常安全的方式自动关闭它。
问题内容: 根据运行时错误消息,异常发生在下一行; 是具有构造函数和重载构造函数的类,其中包含有关数据库中每种病毒的特定信息,例如; 字符串vName 字符串vDefinition 重载 具有标记化定义的数组(以xLength组分隔) 具有LCS令牌的阵列 有等级浮动 类型的是.iterator(),如下所示: 是和ArrayList类型,用于存储病毒对象 (此时为名称和定义), 以便以后使用。
问题内容: 我是mysql和jdbc的新手,但出现此标题错误。我整天都在搜索,找不到适合我的解决方案。 我尝试过的操作:卸载/重新安装mysql,将mysql-connector- java-5.1.25-bin.jar和ojdbc7.jar复制粘贴到与我要运行的.class文件相同的位置,然后将该程序重建在其他目录中,可能还有其他几件事。 我正在使用notepad ++进行编码,并使用Windo
我正在尝试仅使用本地依赖项编译和运行java grpc客户端,但出现以下错误: 这是我的gradle文件: 程序将编译,但不运行。我已经从protos生成了我的java文件,并验证了我是否使用了正确的protoc和protoc gen grpc java与我正在使用的jar库相对应。非常感谢您的帮助。
我收到一个奇怪的错误。在我初始化总数的线上。如果你有空闲时间帮我,我不明白; 第10行:Char 24:运行时错误:-inf超出了“int”(solution.cpp)类型的可表示值的范围摘要:UndefinedBehaviorSanitizer:undefined behavior prog_joined。cpp:19:24
我对我的代码有一点理解上的问题。每次运行代码时,在输入第一个整数后都会收到此错误消息。 在java.util.scanner.throwfor(未知源)在java.util.scanner.next(未知源)在java.util.scanner.nextint(未知源)在java.util.scanner.nextint(未知源)在java.util.scanner.nextint(未知源)在a2
这个程序应该在一个JFrame中添加两个面板,每个面板都有一个开关按钮,允许用户在每个面板之间切换。它编译得很好,但是当我试图单击Switch1按钮时,我得到了这个错误: java线程“AWT-EventQueue-0”中出现异常。ClassCastException:java。awt。无法将BorderLayout转换为java。awt。测试仪上的卡片布局。在javax上执行的操作(tester
我试图插入到一个MySQL数据库,代码工作和插入,但立即崩溃,看不出问题。 Applications.loginandRegister e/AndroidRuntime:致命异常:主进程:Applications.loginandRegister,PID:2545 Android.view.WindowManager$BadTokenException:无法添加窗口--令牌Android.os.B