Bom dia, boa tarde, boa noite!
Estou com o seguinte problema:
Tenho uma string no formato “x.y.z”, onde a mesma, será usada em um campo input, para filtragem de dados em um relatório.
Para isso, eu recupero o que o usuario digitar e dou um split, recuperando os valores corretos para filtrar no banco, por exemplo:
String userInput = "3.4.5";
String[] arrayFiltro = userInput.split("\\.");
// Resulta em :
arrayFiltro[0]; // 3
arrayFiltro[1]; // 4
arrayFiltro[2]; //5
Porém, eu tive um problema, quando digito algum valor “x.” ou “.x”, o split() deveria me retornar “x” e “” (vazio) ou “” e “x”, respectivamente, mas quando executo em debug
eu percebi que quando digito no formato “.x” (ou “.x.x”), me retorna correto, um valor vazio antes do x, porém, valores vazios após o “.”, como por exemplo, “3.”; não me retornam vazio. Mais ou menos assim:
String tipo1 = "3.";
String tipo2 = ".3";
String[] array1 = tipo1.split("\\.");
String[] array2 = tipo2.split("\\.");
array1[0]; // 3
// array1[1] não existe, é ignorado, e é exatamente aqui o problema
array2[0]; // "", retorna o vazio desejado corretamente
array2[0]; // 3
Alguém sabe como lidar com isso ?
Grato!