O método split() do Java recebe como parâmetro uma String ou Regex para dividir a String em um Array de acordo com o delimitador passado. Porém, com o Java 7 (e talvez versões anteriores), quando passado uma String vazia como parâmetro ("") é criado uma posição vazia no início do Array. Nas versões 8 em diante esse problema foi corrigido. A questão é que dependendo do tratamento dado na hora do desenvolvimento, futuramente ao migrar o projeto para uma versão mais atual do Java, vai ter problema.
Basicamente
temos duas soluções:
- Não usar o Split() passando uma String vazia como delimitador, ao invés disso usar uma regex ou fazer um loop pegando as posições do Array.
- Usar um código para atualizar o Array tirando o espaço em branco.
Segue um
exemplo de um código que tira o espaço extra no Java 7:
//Pega a String e passa para um
Array.
String
minhaString = "Daniel";
String[]
meuArray = minhaString.split("");
/*
* Hack para Java 7 pq inclui
uma posição vazia no inicio do array após o
split na String.
* A partir da versão
8 do Java o problema não existe mais.
*/
if(meuArray[0].equals("")){
String[] hack = new String[meuArray.length-1];
System.arraycopy(meuArray, 1, hack,
0, hack.length);
meuArray = hack;
}
/*Fim do hack*/
Eu
prefiro usar a opção 1, mas há casos em que a opção 2 pode ajudar, vai depender
de cada situação.
Nenhum comentário:
Postar um comentário