String.replaceВсе странное поведение
String s = "hi hello";
s = s.replaceAll("\\s*", " ");
System.out.println(s);
У меня есть код выше, но я не могу понять, почему он производит
h i h e l l o
а не
hi hello
Большое спасибо
Ответы
Ответ 1
Использовать квантор +
для соответствия 1 или более пробелам вместо *
: -
s = s.replaceAll("\\s+", " ");
\\s*
означает совпадение 0 или более пробелов и будет соответствовать пустому символу перед каждым символом и заменяется пробелом.
Ответ 2
*
соответствует 0 или более пробелам, я думаю, вы хотите изменить его на +
, чтобы соответствовать 1 или более пробелам.