Редактировать: Это не обрабатывает пунктуацию, и при переработке его для обработки пунктуации потребуется использовать тот же подход, что и в ответе Серхио, но с двумя шагами вместо одного. Следовательно, это неадекватный ответ и был отозван.
Оригинальный ответ ниже:
Самый простой способ, который я могу придумать, это двухэтапный метод.
Сначала замените все пробелы на "& nbsp;". Это довольно быстро, потому что это не обязательно регулярное выражение.
String testStr = "TESTING THIS OUT WITH DIFFERENT CASES";
String replaced = testStr.replace(" ", " ");
Затем замените все отдельные экземпляры "& nbsp;" с пробелами.
String replaced2 = replaced.replaceAll("\\b \\b", " ");
System.out.println(replaced2);
Результат:
TESTING THIS OUT WITH DIFFERENT CASES