Вы можете использовать регулярное выражение
(\s)\1
и
замените его на $1
.
Java-код:
str = str.replaceAll("(\\s)\\1","$1");
Если ввод "foo\t\tbar "
, вы получите "foo\tbar "
в качестве вывода
Но если ввод "foo\t bar"
, он останется неизменным, поскольку не имеет последовательных пробельных символов.
Если вы рассматриваете все пробельные символы (пробел, вертикальная табуляция, горизонтальная табуляция, возврат каретки, перевод формы, новая строка) как пробел, то вы можете использовать следующее регулярное выражение для замены любого числа последовательных белых пробел с одним пробелом:
str = str.replaceAll("\\s+"," ");
Но если вы хотите заменить два последовательных пробела одним пробелом, вы должны сделать:
str = str.replaceAll("\\s{2}"," ");