text = text.replaceAll("(?m)(?:^|\\G) ", " ");
^
в режиме MULTILINE соответствует началу строки.
\G
соответствует точке, где закончилось предыдущее совпадение (или началу ввода, если предыдущего совпадения не было).
Если вы обрабатываете одну строку за раз, вы можете сократить регулярное выражение до "\\G "
.