Scanner.useDelimiter не работает должным образом - PullRequest
0 голосов
/ 24 января 2019

Фактический ответ должен быть 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

1 Ответ

0 голосов
/ 24 января 2019
p.useDelimiter(".");

Разделитель - это регулярное выражение, а . в регулярном выражении означает «каждый возможный символ». Вы используете «каждый возможный символ» в качестве разделителя, заставляя Scanner возвращать все между каждой парой символов, что приведет к множеству пустых строк.

Вместо этого убери точку:

p.useDelimiter("\\.");

Выход:

delimiter is \.
stack
overflow
...