Java useDelimiter忽略空白以及两个特定符号的正确参数
我希望扫描仪忽略三件事:空白、Java useDelimiter忽略空白以及两个特定符号的正确参数,java,java.util.scanner,Java,Java.util.scanner,我希望扫描仪忽略三件事:空白、“/”和“!”。 在useDelimiter方法中使用的正确参数是什么 扫描仪的分隔符只是一个模式,因此您可以使用以下内容: sc.useDelimiter("[\\s/!]*"); useDelimiter采用正则表达式参数: 模式-指定定界模式的字符串 所以只要确保字符串是正则表达式形式 正则表达式中的空格是\s,将其转义为\\s/仍然是/和仍然是。然后使用|充当“or”操作符,表示“其中一个” 以下是如何做到这一点: scanner.useDelimiter
“/”
和“!”
。
在
useDelimiter
方法中使用的正确参数是什么 扫描仪的分隔符只是一个模式,因此您可以使用以下内容:
sc.useDelimiter("[\\s/!]*");
useDelimiter
采用正则表达式参数:
模式
-指定定界模式的字符串
所以只要确保字符串是正则表达式形式
正则表达式中的空格是\s
,将其转义为\\s
<代码>/仍然是/
和代码>仍然是代码>。然后使用|
充当“or”操作符,表示“其中一个”
以下是如何做到这一点:
scanner.useDelimiter("\\s|/|!");
如果您想说“连续的空格、斜杠和感叹号也算作分隔符”,那么您可以在整个事件中添加一个量词+
:
scanner.useDelimiter("(\\s|/|!)+");
为什么要使用#
?我想给扫描仪一些类似“Anna Mills/Female/18”的东西,然后使用System.out.println(scan.next())在单独的行中获取每个单词。所以扫描器应该忽略空白和“/”符号。我使用了您建议的代码,但它没有这样做……出于某种原因,我认为OP使用了
作为可能的分隔符。打算使用/
-已编辑和修复。