Como quebrar linha em String em um determinado lugar

Recebo essa String como resposta de uma consulta e gostaria de quebrar uma linha sempre que chega no “.”
Jeff Bezos. Bill Gates. Mark Zuckerberg. Elon R Musk. Ber
nard Arnault. Warren Buffett. Mukesh Ambani. Steve Ballmer.

String umaLinha = "Jeff Bezos. Bill Gates. Mark Zuckerberg. Elon R Musk. Bernard Arnault. Warren Buffett. Mukesh Ambani. Steve Ballmer.";
String variasLinhas = umaLinha.replaceAll("\\.\\s*", "\n");

System.out.println(umaLinha);
System.out.println(variasLinhas);

@staroski, pq \\.\\s? É regex?

Sim, o primeiro parâmetro do replaceAll espera receber um regex.
Neste caso significa: ponto (\\.) seguido de espaço (\\s) nenhuma, uma ou mais vezes (*).

1 curtida

Só lembrando que \s não pega somente espaços, ele também pega TAB, quebras de linha, e vários outros caracteres.

1 curtida

Olá gente, quanta resposta para algo muito simples, eu em qualquer tipo de arquivo em java seja com inteiros ou strings utilizo \n para quebra de linha e sempre deu certo.

Se prestar atenção, o problema não é simplesmente adicionar uma quebra de linha e pronto. É pra adicionar somente depois do ponto final, daí a necessidade de se detectar o ponto e fazer a substituição.


Depende, sistemas operacionais diferentes possuem definições diferentes de quebra de linha. O Unix/Linux usa \n, mas em Windows é \r\n, e no MacOS é \r (veja mais sobre essa bagunça aqui).

Então cuidado com o “sempre funcionou”, dependendo do caso o \n pode não funcionar…