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!