Dúvida sobre o método "split" no EP1

Dúvida sobre o método "split" no EP1

por Juliano Garcia de Oliveira -
Número de respostas: 2

Olá, estava rodando os Unit Tests do EP1, só que ao rodar a parte em que ele lê o arquivo, e então separa as palavras usando o .split(), ele não está colocando a palavra "é" na lista, porém ao imprimir a linha antes de separar por palavras, ele mostra normalmente.

Será que esqueci de alguma coisa no arquivo? Ou precisa de alguma coisa de encodificação, etc?

 

Segue abaixo a imagem e a execução, espero que não haja problema em postar o código pois ele já está aqui no PACA mesmo.

 

PS: Rodei tanto pela IDE, como pelo terminal, e o resultado foi o mesmo triste

Em resposta à Juliano Garcia de Oliveira

Re: Dúvida sobre o método "split" no EP1

por José Coelho de Pina -

Oi Juliano,

Lega! Está tudo ok.

A especificação do método split está na API da classe String: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html.

O ponto aqui é a expressão regular e o significado de "\\W+".
O significado pode ser visto em http://www.vogella.com/tutorials/JavaRegularExpressions/article.html#meta-characters

O método está fazendo o que foi pedido e usando como separador os caracteres que não estão em [a-zA-Z_0-9] (letras não acentuadas e números):

Welcome to DrJava.  Working directory is /home/coelho/java
> String s = "Como é bom estudar MAC0323!"
> String t = "12 é 34 ç 56 à"
> s.split("\\W+")
{ Como, bom, estudar, MAC0323 }
> t.split("\\W+")
{ 12, 34, 56 }
> s.split(" ")
{ Como, é, bom, estudar, MAC0323! }
> s.split("o")
{ C, m,  é b, m estudar MAC0323! }
>