我喜欢默认扫描器的当前分隔符,但是我想另外添加一个逗号。这样,像“a,b”这样的字符串将在第一次调用next()时返回“a”,然后在第二次调用时返回“b”。
我尝试了以下方法,但没有得到预期的结果:
Scanner lineScanner = new Scanner(line);
lineScanner.useDelimiter(lineScanner.delimiter().toString()+',');
它不再将制表符保留在调用next()返回的字符串中。
我该怎么加逗号呢?
我还尝试使用regex操作符:“|”。
lineScanner.useDelimiter(lineScanner.delimiter().toString()+"|,");
当我用以下字符串调用next()3次时,我没有得到正确的结果:
“jr nz,.clearsound”
第一名:“jr”
第二名:“新西兰”
第三名:“我的朋友”
为什么会这样?
1条答案
按热度按时间oiopk7p51#
文档,即
Scanner
说:扫描仪使用的默认空白分隔符由
Character.isWhitespace
.的javadoc
Pattern
说:行为类似
java.lang.Character
boolean ismethodname方法(不推荐使用的方法除外)可以通过相同的方法使用\p{prop}
指定属性名为javamethodname的语法。\p{javaWhitespace}
相当于java.lang.Character.isWhitespace()
也就是说Scanner
一开始好像你做了:自
\p{X}
是字符类,可以将其与中的其他字符合并[ ]
,例如,要同时拆分逗号上的令牌,请使用:注意:将两个或更多逗号放在一起不会返回空标记,例如。
"a , , b"
还是会回来的"a"
第一次打电话给next()
,然后"b"
第二个电话。