Tenho uma dúvida quanto ao método split da API String.
Quando eu tenho uma String e passo a String “.” para o método split, ele me retorna vazio (""). E quando eu subistituo o ponto (".") por dois pontos (":") e faço o mesmo na String, ele funciona.
Porque isso acontece?
Exemplo:
String lTeste = "fabiano.almeida";
String[] lTokens = lTeste.split(".");
System.out.println(lTokens.length);
A saída é 0 (zero). Mas se eu fizer isso:
String lTeste = "fabiano:almeida";
String[] lTokens = lTeste.split(":");
System.out.println(lTokens.length);
Funciona. Porque quando eu coloco ponto ele não funciona?
Amigo, não tenho certeza, mas acho que o split trabalha com expressões regulares…
Se esse for o caso, o ponto (.) é um caracter especial (metacaractere), por isso você deve “escapar” o ponto para usar ele como sinal de pontuação mesmo…
Tenta “.” ao invés de “.”. (aspas | barra invertida | ponto | aspas)
A expressão regular final deve ser “.”. Mas a \ é um caractere especial em java (lembre-se, vc pode fazer “\n”). Para inserir uma barra só, você deve usar duas barras “\.”
Mas não confunda. A expressão regular final (e isso vc pode até conferir imprimindo a String com System.out.println) ainda será “.”.