Scanner.useDelimiter 未按预期工作

Scanner.useDelimiter not working as expected

实际答案应该是 stackoverflow 在两行中输入 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(".");

分隔符是一个正则表达式,正则表达式中的.表示"every possible character"。您正在使用 "every possible character" 作为分隔符,使 Scanner return 每对字符之间的所有内容,这将导致很多空字符串。

改为转义点:

p.useDelimiter("\.");

输出:

delimiter is \.
stack
overflow