Java Scanner.useDelimiter未按预期工作

Java Scanner.useDelimiter未按预期工作,java,java.util.scanner,delimiter,Java,Java.util.scanner,Delimiter,实际答案应该是stack和overflow两行,分别用于输入stack.overflow;使用的分隔符为“”。 输出中未显示任何内容: 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()){

实际答案应该是
stack
overflow
两行,分别用于输入
stack.overflow
;使用的分隔符为“”。 输出中未显示任何内容:

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());
}
对于输入
stack.overflow
和分隔符,“.”预期输出为

stack
overflow
分隔符是正则表达式,正则表达式中的
表示“每个可能的字符”。您使用“每个可能的字符”作为分隔符,使扫描器返回每对字符之间的所有内容,这将导致大量空字符串

换成避开圆点:

p.useDelimiter("\\.");
输出:

delimiter is \.
stack
overflow

您需要执行
p.useDelimiter(\\)
但这会使分隔符变为“\.”右
System.in
始终
hasNext()
,除非您关闭它。你可以再多打一些。不
useDelimiter
接受正则表达式。查一下。我删除了我的答案。这是正确的。谢谢斯图尔特斯克指出我的错误。
delimiter is \.
stack
overflow