如果我们用扫描仪进行控制台输入,我们有两种方法来编写输入循环
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println(scanner.nextLine());
}
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
我相信第二个更正确,因为在hasNextLine()javadoc中提到了这个方法正在等待新的行。但为什么第一个也是工作的,等待一个新的行没有suchelementexception?
您的第一个解决方案将在输入结束时抛出异常(例如,当用户在linux上按Ctrl+D
,或者当您将一个文件管道输入到该文件的结尾时)。第二种解决方案将优雅地退出。
如果您只使用交互式命令行,并且从不发送文件末尾信号,则没有区别。
我承认,我已经研究了很多(类似的)问题,但我似乎无法理解我为一个基本的SPOJ问题(http://www.SPOJ.com/problems/onp/)编写的以下代码中的上下文用法(http://www.SPOJ.com/problems/onp/): 如果我使用nextLine()而不是next(),那么SPOJ引擎会生成一个‘错误的答案’响应。 此外,在postfixString函数中使用St
这是我使用的代码: 但当它到达这一点时,它只会说“创建一个名称”。和“创建密码”。两个都在同一时间,然后我必须打一些东西。所以它基本上跳过了需要键入字符串的扫描器部分。在“创建名称”之后。和“创建密码”。然后输入,名称和密码都改为我输入的内容。我怎么解决这个? 这是全班学生。我只是在测试,所以它实际上不是一个程序: 抱歉我语法不好。我不是英国人,所以我很难解释。
我有两个do-while循环用于进行自定义输入验证。问题是它会自动进入下一个do while循环。正确插入名称后,我必须放置一个新的下一行():name=scanner。nextLine() 我知道当光标停留在那里时,nextLine()会出现“小故障”,您必须调用nextLine()才能继续。资料来源:https://www.geeksforgeeks.org/why-is-scanner-sk
一段时间以来,我一直在做一个作为拼字字典的编程作业。该程序接受用户的输入,并输出一个包含单词列表的文件,这取决于用户从菜单中请求的内容。我遇到的问题与Scanner.nextLine()有关。 我不是很清楚为什么,但由于某种原因,有时我必须按一次enter键,然后我的代码才会接受我的输入并将其存储为变量。本质上,我最终输入了两次输入。我尝试在代码周围插入Scanner.nextLine()以“占用
首先,我是java新手,正在尝试完成学校关于创建自动售货机的作业。我的程序接收两个文件作为cli参数,一个是产品,另一个是钱。 下面是我提供的ie Arg[1]的第二个文件,它的格式与第一个相同,工作。 任何帮助都将不胜感激。谢谢
< b >想改进这个问题?更新问题,以便通过编辑此帖子用事实和引用来回答问题。 我知道使用nextInt()方法不会消耗新行字符,所以为了处理这个问题,我需要使用一个空的nextLine()方法继续。 我的问题是,作为一种替代解决方案,程序是否会对任何类型的运行时错误开放以使用两个扫描仪,一个用于字符串输入,一个用于整数? 感谢您的任何帮助! (经过编辑,因此问题不那么主观)