pequena ilustracao de como funciona o metodo split() pra quem nao conhece, pois e um metodo extremamente util, tanto que nao esta presente so no Java, mas tambem, em varias outras linguagens de programacao.A acao executada pelo split e tao simples quanto poderosa, dada uma String que possui varios campos separados por um delimitador, por exemplo, "banana;maca;goiaba;manga" temos uma String com varios nomes de frutas separados pelo delimitador ";" (ponto e virgula). Imagine entao que exista a necessidade de "quebrar" essa String em varias outras Strings cada uma contendo o nome de uma fruta, teriamos entao {"banana", "maca", "goiaba", "manga"}. E exatamente nesse ponto que entra o String.split() ele executa essa acao de uma maneira bastante simples: (...) //Inicialmente temos a String que deve ser "quebrada". String valores = "banana;maca;goiaba;manga"; //Entao invocamos o split para que execute a acao. String[] resultado = valores.split(";"); (...)Observe que o delimitador (neste caso ";") e passado como parametro para o metodo split(). Repare tambem que o split() retorna um array de Strings, contendo exatamente o resultado pretendido que e um array com as 4 Strings em cada campo.Bom, apos essa explicacao rapida sobre o funcionamento do String.split(), podemos ilustraro ponto que e objetivo principal dessa postagem. O split() possui um pequeno "bug", talvez seja ate um bug proposital, mas o fato e que pode causar algumas dores de cabeca na sua utilizacao.Caso a String que contenha todos os campos a serem separados termine com a repeticao do delimitador varias vezes, por exemplo, "banana;macao;goiaba;uva;;;;;" o split ignora a parte final gerando entao um array contendo somente 4 Strings. A principio isso pode ate parecer uma coisa boa, mas imagine que exista a necessidade de validar a quantidade de colunas informadas por um usuario em um arquivo e que seja importante contar cada campo entre o delimitador, mesmo que esteja em branco como uma coluna vazia, ou seja, a String citada como exemplo deveria gerar um array com 8 Strings sendo que as 4 ultimas seriam vazias. Nessa hipotese o split() nao funcionaria corretamente, por isso considero que em determinados casos isso pode ser considerado um bug do metodo.Como todo problema deve possuir uma solucao, apresentarei aqui uma POG (Programacao Orientada a Gambiarras) que utilizei para resolver esse problema, quando passei por ele.Analisando melhor o split() percebi que caso a String que contenha os campos separados tenha uma sequencia de delimitadores no meio da String, por exemplo, "maca;banana;;;;;;goiaba;uva", o array gerado considera os campos vazios como parte do array gerado, ou seja, cada ";;" gera uma String vazia no array.Deste modo, a solucao caso a sequencia de delimitadores seja no final da String, a solucao que eu encontrei foi transformar esse final em meio. Como assim? Nada melhor do que o codigo para dizer o que ele mesmo faz: (...) String valores = "maca;banana;goiaba;uva;;;;;" //Basta concatenar qualquer coisa a String com os valores antes de //chamar o split: valores += "qualquercoisa"; //pronto! o split ira retornar o array de string com os campos vazios: String[] resultado = valores.split(";"); (...)Vale observar que no array de String resultado, o ultimo