当前位置: 首页 > 知识库问答 >
问题:

java扫描仪hasnext(模式)与空白冲突

左丘耀
2023-03-14

我写了这个正则表达式([0-9]{2}:){2}[0-9]{2},[0-9]{3}-

final String timeSpanPattern = "([0-9]{2}:){2}[0-9]{2},[0-9]{3} -> ([0-9]{2}:){2}[0-9]{2},[0-9]{3}";
.
.
.

Scanner i = new Scanner(System.in).useDelimiter("\n");

while (i.hasNext(timeSpanPattern)) {
    line = i.next(timeSpanPattern);
    forbiddenTimes.add(line);
}
.
.
.

共有2个答案

张可人
2023-03-14

useDelimiter函数的用法不正确。您(i)应该这样使用:

Scanner i = new Scanner(System.in);
i.useDelimiter("\n");
慕璞
2023-03-14

重新阅读您的问题,我发现了实际问题:

Scanner i = new Scanner(System.in).useDelimiter(System.lineSeparator());

行分隔符是"\n"在UNIX系统上,"\r\n"在Microsoft Windows系统上。

 类似资料:
  • 我正在尝试编写使用Scanner类从用户那里获取输入的代码。但是hasNext()、hasNextInt()和hasNextLine()每次都会运行无限循环。

  • 我应该写一个程序,处理用户输入并将其翻译成Pig Latin并打印出来。我的翻译指南是: Pig Latin是英语,每个单词的开头辅音都移到末尾,后跟“ay”。以元音开头的单词只需附加“ay”即可。例如,在Pig Latin中,短语“蘑菇蓝的最深阴影”会出现如下:e-Thay eepest day ade shay of ay-ushroom may ue blay 所以我写了这个程序: 它不起作

  • 执行摘要:在Java的(尤其是关于内部缓冲区边界条件)中,(或其他regex模式)的使用是否有任何警告/已知问题? 详细信息:因为我想对潜在的多平台输入文件进行多行模式匹配,所以我使用了带有< code>\R的模式,根据< code>Pattern javadoc: 任何Unicode换行符序列,都等价于 总之,我在一个测试文件中注意到,应该解析十六进制转储块的循环被截断了。经过一些调试,我注意到

  • 问题内容: 如何将扫描仪的定界符设置为;或换行? 我试过: 但这不起作用。 问题答案: 通常,在模式中,您需要将翻倍。 所以,尝试 要么 编辑 :如果是问题,则可能要尝试以下操作: 它匹配的一个或多个,和。 注意 :我还没有尝试过这些。

  • 问题内容: 我有一个创建多个对象并将其放入一个类的类,如下所示: 我有一个从控制台扫描输入“ add”的应用程序,如果找到该应用程序,则调用如下所示的方法: 该应用程序应允许用户根据需要多次输入“添加”,但是在add调用该方法后将出现错误“找不到行” 。 我猜这是因为方法中的尚未关闭,然后在需要时重新打开。这是程序的问题吗?如果是,我将如何修复它? 请注意,该程序尚未完成,因为我将添加一种出售这些

  • 问题内容: 我正在尝试读取具有多个单词的字符串,即。洛杉矶或纽约市。如果有两个词并将它们分割在变量之间,则使用scanner.next()进行“出发”和“到达”只会读取第一个。nextLine()也不是很幸运。这是我的代码: 我知道这很简单,但我还没有弄清楚。 这是上面的代码的输入/输出: 输入航班号:29 输入出发城市:(立即跳至下一行) 输入到达城市: -—我真正想要的是---- 输入航班号: