[Parcialmente Resolvido]Regex para apagar qualquer whitespace de uma string

Olá colegas.

Estou desenvolvendo um reconhecedor de linguagem regular. Está pronto, funciona legal, mas descobri um bug.

Preciso ler linha a linha de um textArea e capturar as palavras que o usuário digitou, desprezando qualquer caractere em branco (espaço, tab, quebra de linha, etc…).

Para tanto uso o regex \s+

Aplicando o regex em uma linha de exemplo “aaa[espaço]bbb[tab]ccc[espaço]” com o código String[] palavras = linhaDeTexto.split("\\s+"); o array ‘palavras’ fica com 3 posições com os valores “aaa”, “bbb” e “ccc” como é de se esperar.

Porém, se no início da linha há um ou mais caracteres em branco, o método split me retorna o array com os dados “”, “aaa”, “bbb” e “ccc”. Sempre vem o array com a primeira posição vazia. Preciso que este array fique só com as palavras que o usuário escreveu.

Esse problema só acontece com whitespaces no início das linhas. Se eu meter 300 whitespaces entre palavras ou no final da linha, o split funciona como esperado.

Falta algo no meu regex?

Obrigado! :wink:

cara se não achar uma solução com split vc faz um for e com uma lógica de 3 linhas vc consegue isso.

Pesquisei pra caramba e não consegui encontrar uma explicação pra isso.

Mas consegui resolver de outro jeito: antes de aplicar esse split eu faço um trim na String, que remove qualquer whitespace que exista no início e/ou no final dela. E resolveu!

Aparentemente meu programa não tem mais nenhum bug. :smiley:

Vou colocar no título do tópico como parcialmente resolvido, porque ainda estou “encucado” com a questão do split escrever vazio na primeira posição do array.

@eduJava Valeu a sugestão! Resolvi com uma linha a mais só! :stuck_out_tongue:

:wink: