2012-08-26 23 views
9

¿Cómo cortar una cadena en java? Me estoy poniendo la fila de a CSV y XLS, y hay por ejemplo datos en la celda es comoCortar cadena en java

14.015_AUDI

¿Cómo puedo decir java que debe mirar sólo en parte antes _? Entonces, después de manipular, debo tener 14.015. En los rieles haré esto con gsub, pero ¿cómo hago esto en Java?

+0

para notar, utilizando para este gsub en Rails es un exceso masivo, debe utilizar dividida, igual que Java. – Rym

Respuesta

15

Puede utilizar String#split:

String s = "14.015_AUDI"; 
String[] parts = s.split("_"); //returns an array with the 2 parts 
String firstPart = parts[0]; //14.015 

Usted debe agregar comprobación de errores (que el tamaño de la matriz es el esperado, por ejemplo)

4
String str = "14.015_AUDI"; 
String [] parts = str.split("_"); 

String numberPart = parts[0]; 
String audi = parts[1]; 
10

En lugar de escisión que crea una nueva lista y tiene dos veces copia, yo usaría subcadena que funciona en la cadena original y no crea nuevas cadenas

String s = "14.015_AUDI"; 
String firstPart = s.substring(0, s.indexOf("_")); 
+0

'indexof' se debe cambiar en' indexOf' – Youssef

+0

@Youssef, Gracias fijo –

+0

Esto está mal, devuelve 'AUDI'. Necesita ser 'String firstPart = s.substring (0, s.indexOf (" _ ") + 1);' OP wanted '14.015' – alreadytaken

0

guayaba tiene Splitter

List<String> pieces = Splitter.on("_").splitToList("14.015_AUDI"); 
String numberPart = parts.get(0); 
String audi = parts.get(1); 
0

debe ser más corto:

"14.015_AUDI".split("_")[0];