我正试图使用扫描仪从键盘上获取一个int值,但我得到了以下错误:
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 TableReader.mainMenu(TableReader.java:122)
at TableReader.main(TableReader.java:76)
// scan for selection
Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // error occurs at this line
s.close();
写入核心转储失败。核心转储已被禁用。要启用核心转储,请在再次启动Java之前尝试“ulimit-c unlimited”
您应该使用scanner
类中的hasnextxxxx()
方法来确保有一个整数可以读取。
问题是,您被称为NextInt()
,它从扫描器
对象指向的流中读取下一个整数,如果那里没有要读取的整数(例如,如果输入耗尽,那么您将看到NoSuchelementException
)
在JavaDocs中,NextInt()
方法将在以下条件下抛出这些异常:
您可以使用hasNextInt()
方法轻松地解决这个问题:
Scanner s = new Scanner(System.in);
int choice = 0;
if(s.hasNextInt())
{
choice = s.nextInt();
}
s.close();
这里是Java新手,尝试扫描下面表单中的输入: 3 3 3 101 000 101 拜托,有更有经验的人能教我如何解决这个问题吗?我发现一些问题与。nextline()和。nextint()有类似的问题,但不完全是这样。不过,如果真的是复制品,我提前道歉... (如果需要,我会添加更多信息)
这是我在Jcreator上编写的代码 代码如下:- 什么是错误的,我如何纠正它?请帮助。
控制台:
问题内容: 逻辑工作正常,但是,当while循环结束并重新开始时,使用此行从键盘再次读取我的下一个选项-> option = kb.nextInt(); 。它给了我一个例外,更确切地说是下面的一个例外: 下面是我的代码,为什么此扫描程序会生成此错误?还有其他从键盘读取的方法吗? 下面的此方法在另一个类文件RegistrationController.java上,因此由上面的rc viariable
我是Java新手。我必须从2D数组向终端显示int系数。我想在同一行中为同一卖家提供每个值。有一个换行符(由于扫描仪?)。我一直在寻找分隔符system.in但我不明白如何使用它,如果这是合适的。 请帮帮我好吗?先谢谢你 最终结果: 输入卖家数量5 输入型号4的数量 卖家1 0 3. 2个 0
对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?