2011-10-03 14 views
7

¿Alguien sabe si existe un método sólido basado en la biblioteca para lograr lo siguiente?Java División de una cadena en 2 cadenas basadas en un delimitador.

decir que tengo una cadena:

"name1, name2, name3, name4" 

y quiero analizarlo en 2 cadenas basadas en el delimitador de coma.

me gustaría que las cuerdas se ven así

string1 = "name1"; 
string2 = "name2, name3, name4"; 

alguna idea? gracias, m

Respuesta

6
Pattern pattern = Pattern.compile(", *"); 
Matcher matcher = pattern.matcher(inputString); 
if (matcher.find()) { 
    string1 = inputString.substring(0, matcher.start()); 
    string2 = inputString.substring(matcher.end()); 
} 
+0

Por si acaso faltara el espacio o hubiera más de uno. –

22

puede usar yourString.split(", ", 2).

String str = "name1, name2, name3, name4"; 

String[] parts = str.split(", ", 2); 
String string1 = parts[0]; 
String string2 = parts[1]; 

System.out.println(string1); // prints name1 
System.out.println(string2); // prints name2, name3, name4 

También es posible usar yourString.indexOf(", ") y yourString.substring(...).

+0

+1: Recibirá una sola cadena si no hay separador. ;) –

+0

Sí ... la OP deja ese caso como UB :-) – aioobe

+0

Con este enfoque ¿estoy en lo cierto al pensar que voy a perder las comas en la cadena? Me gustaría que permanezcan en la segunda cadena – mAndroid

Cuestiones relacionadas