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