Ver ficha no ajuste (\ t) de principio / final de una cadena en JAVA

Bhves:

Tengo un flujo de entrada que cuenta con campos separados por tabulador (\ t) que tiene este aspecto

String str = "  acc123\tdpId123\t2011-01-01\t2022-01-01\[email protected]\tIN\t1233\tSOMETHING      ";

que funciona muy bien cuando lo hago str = str.trim();y

strArray = str.split("\t", -1); 
strArray=["acc123","dpId123","2011-01-01","2022-01-01","[email protected]","IN","1233","SOMETHING"] will give size as 8 

Pero último campo en el registro de entrada no es obligatoria y puede ser omitida.

Por lo que la entrada puede tener este aspecto también.

 String str1 = "acc123\tdpId123\t2011-01-01\t2022-01-01\[email protected]\tIN\t1233\t";

pero en este caso último campo debe estar vacío pero cuando se utiliza esta cadena después del ajuste y dividido mi tamaño es 7

str1 = str1.trim();      
strArray = str1.split("\t", -1); 
      strArray=["acc123","dpId123","2011-01-01","2022-01-01","[email protected]","IN","1233"]will give size as 7

Pero yo quiero

strArray=["acc123","dpId123","2011-01-01","2022-01-01","[email protected]","IN","1233",""]

¿Cómo puedo evitar esta situación?

Mushif Ali Nawaz:

Hay que ir:

String str1 = "   acc123\tdpId 123\t201 1-01-01\t2022-01-01\[email protected]\tIN\t1233\t";
str1 = str1.replaceAll("^[ ]+", ""); // removing leading spaces
str1 = str1.replaceAll("[ ]+$", ""); // removing trailing spaces
String[] split = str1.split("\t", -1);

System.out.println(Arrays.toString(split));
System.out.println(split.length);

Cadena # ajuste método también elimina \t. Para manejar eso he quitado sólo los espacios iniciales y finales utilizando expresiones regulares.

Salida:

[acc123, dpId 123, 201 1-01-01, 2022-01-01, [email protected], IN, 1233, ]
8

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=317375&siteId=1
Recomendado
Clasificación