终止扫描器输入
当输入完成时,我想要实现扫描器终止。作为终止,我选择空行 - 只需输入密钥。然而由于某种原因(我不知道)下面的实现不起作用。你有什么想法,为什么?或者也许你知道更好的解决方案终止扫描器输入
Scanner scanner = new Scanner(System.in);
while (!scanner.nextLine().startsWith("\n")) {
// code
}
// code after press just Enter
我也试过:
while (!scanner.nextLine().equals("\n"))
...或:
while (scanner.nextLine().isEmpty())
没有什么工作......
PS。有些人可能认为我重复了这个主题: How to terminate Scanner when input is complete?
但是我这样做的目的,因为我现在要求具体实施,而不是一般的扫描仪终止。
你需要寻找scanner.nextLine()。长度()== 0
因为\ n是行终止,这不会对扫描仪,类似的概念被返回给解析字符串或使用StringTokenizer的。你只需要查找一个零长度的字符串。
你的概念似乎很棒!谢谢!但它不给我任何结果,我不知道为什么。有什么建议么? 扫描仪扫描仪=新扫描仪(System.in); //此代码不起作用 –
您的初始代码在分析空白之前未将行分配给临时变量线。通过在一次调用中执行scanner.nextLine()。length(),您可以在一个步骤中消耗/分析/丢失该行。我只是拿着你的东西,但想看看你是否意识到了! :) –
如果我写下这样下面我会失去第一行输入。 int nextLine = scanner.nextLine()。length(); 而(nextLine == 0){ //代码 nextLine = scanner.nextLine()长度(); } –
将'scanner.nextLine()'存储到一个变量并检查它是否为空,输入循环并直接使用变量... – Codebender
您是否试图让用户输入一行文本,进入,你的代码继续前进? –
@Codebender:谢谢你的建议,但我用isEmpty()方法试了这个。它没有给出任何结果。 –