[英]Scanner.useDelimiter not working as expected
The actual answer is supposed to be stack
and overflow
in two separate lines for input stack.overflow
;对于输入stack.overflow
,实际的答案应该是stack
和overflow
在两个单独的行中; delimiter used is ".".使用的分隔符是“.”。 Nothing is shown in the output:输出中没有显示任何内容:
Scanner p = new Scanner(System.in);
p.useDelimiter(".");
System.out.println("delimiter is "+ p.delimiter());
\\this above line is producing expected output
while(p.hasNext()){
System.out.println(p.next());
}
For input stack.overflow
and delimiter "."对于输入stack.overflow
和分隔符“.” expected output is预期输出是
stack
overflow
p.useDelimiter(".");
Delimiter is a regex, and .
分隔符是一个正则表达式,并且.
in regex means "every possible character".在正则表达式中的意思是“每个可能的字符”。 You are using "every possible character" as delimiter, making Scanner return everything between each pair of characters, which will result in a lot of empty strings.您使用“每个可能的字符”作为分隔符,使 Scanner 返回每对字符之间的所有内容,这将导致大量空字符串。
Escape the dot instead:转义点:
p.useDelimiter("\\.");
Output:输出:
delimiter is \.
stack
overflow
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.