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 или более пробелам.
Ответ 1 Использовать квантор + для соответствия 1 или более пробелам вместо *: - s = s.replaceAll("\\s+", " "); \\s* означает совпадение 0 или более пробелов и будет соответствовать пустому символу перед каждым символом и заменяется пробелом.
Ответ 2 * соответствует 0 или более пробелам, я думаю, вы хотите изменить его на +, чтобы соответствовать 1 или более пробелам.