0

estoy migrando un archivo CVS,haciendo un split mas concatenar, eso sale bien pero en la colummna type en los campos tengo hacer que solo salga el tipo de dato, es decir ahora me figura java.lang.String y necesito que salga solo la palabra String. estoy haciendo este codigo y cambio algunas cosas pero no me muestra la palabra.Les agradeceria si me podrian guiar .

String[] components = record.split(",");
String type[] = components[4].split(",");// Sṕilt de la columna type
String finalType = type[type.length-1];// esta es la parte en donde deberia solo tomar la palabra String

El Array componets son las lineas el type el campo @TwoDent Osea que en las lineas se ve de esta manera : java.lang.String java.lang.Integer

  • 1
    Hola @Hayden, podrias decirnos que te trae con ese codigo ? – Carlosgub Feb 17 '20 at 01:33
  • 1
    Que es lo que almacena el array "components"? Podrias mostrarlo? – TwoDent Feb 17 '20 at 01:40
  • almacena las lineas –  Feb 17 '20 at 01:47
  • @Carlosgub me trae lo mismo no hace nada ,es decir , al tener los campos con estos String: Java.lang.String java.lang.Integer quiero que me muestre solo String y Integer –  Feb 17 '20 at 01:52
  • 2
    Nunca va a funcionar porque el delimitador debería ser un `.` (punto) y tu lo tienes como una coma. Y si quieres más ayuda, debería de explicar por lo menos, que hace ese código y también especificar en detalle cual es el problema. – MrDave1999 Feb 17 '20 at 02:43
  • tengo que importar un cvs pero la parte que no me sale es que en la columna type esta el campo java.lang.String y deberia solo estar la palabra string –  Feb 17 '20 at 03:26
  • @Hayden agrega un ejemplo de tu archivo csv – Jorgesys Feb 17 '20 at 15:11

2 Answers2

1

Hola @Hayden segun lo que comentas te dejo un ejemplo de codigo de como debes de hacerlo:

 // Desbes utilizar punto no coma para el separador
 String type[] = components[4].split("\\."); // aqui se aplica un escape al punto para indicar que es el carácter.
 String finalType = type[type.length-1];
 System.out.println(finalType);

Algo que debes de tener en cuenta es que el punto es un carácter especial de `regex, a diferencia de la coma que no lo es por lo que la coma no es necesario escaparse, con el punto debes de escapar al caracter de esta forma '\\.' o [.]

Roberto E Moran
  • 3,174
  • 1
  • 6
  • 17
1

El separador debería ser el caracter ., pero este caracter es un "metacaracter" por lo tanto debes escapar este caracter al usar el método .split()

//Crea array de elementos usando "," como separador.
String[] components = record.split(",");
//Crea array de elementos usando "." como separador. 
String type[] = components[4].split("\\.");

Revisa: ¿Tienes problemas al usar un caracter como separador?

Jorgesys
  • 103,630
  • 13
  • 52
  • 124