Como fazer split com varios delimitadores?

4 respostas Resolvido
xXSAMPXx

Quero fazer o split com o espaço, virgula e ponto.
String [] words = line.split(" ,.");

4 Respostas

A

E qual o resultado esperado disso?

Dê alguns exemplos de como isso deveria funcionar.

xXSAMPXx

por exemplo a frase: O,…joao e,., porreiro
Eu quero o resultado O joao e porreiro
Quero cortar fora os pontos,as virgulas e os espaços.

hugokotsubo
Solucao aceita

split recebe como parâmetro uma expressão regular (regex), então você pode fazer line.split("[ ,.]+").

Os colchetes criam uma classe de caracteres, que serve para quando você tem várias opções de caracteres que quer considerar. No caso, eles contém um espaço (repare que há um espaço depois do [), uma vírgula e um ponto, então a regex pega qualquer um desses caracteres.

E o quantificador + pega uma ou mais ocorrências, portanto o split é feito usando como separador um ou mais caracteres que sejam espaço, vírgula ou ponto.


Claro que as formas de resolver podem variar conforme a string que você está usando, mas outra opção é usar split("\\W+") - o atalho \W é “tudo que não é alfanumérico”, sendo que “alfanumérico” são apenas: as letras de “A” a “Z” (maiúsculas e minúsculas), os dígitos de 0 a 9 e o caractere _ (no seu caso também funcionará, mas dependendo da string, pode dar diferença usar \W ou a primeira solução acima).

xXSAMPXx

obrigado

Criado 16 de fevereiro de 2021
Ultima resposta 16 de fev. de 2021
Respostas 4
Participantes 3