2012-01-12 21 views
5

Tengo una cadena como esta: "LODIXAL COMP 15"cómo dividir una cadena contiene números en java?

¿Cómo puedo dividirla en "LODIXAL COMP" y "15"?

String a = "LODIXAL COMP 15"; 

String[] result = {"LODIXAL COMP" , "15"} 
+0

Lea [this] (http://docs.oracle.com/javase/tutorial/essential/regex/) – mre

+3

¿Cuál es el criterio exacto para la ubicación de la división? ¿Puede la primera cadena devuelta alguna vez contener dígitos? – NPE

+0

respondiendo a la pregunta de @ aix ayudará a crear una buena respuesta para usted. Lo que quiere obtener: AAA BBB 2 3 CCC 4? [AAA BBB, 2, 3, CCC, 4]? – smas

Respuesta

14

Utilice esta expresión regular positive lookahead basadas:

a.split(" (?=\\d+)"); 

PRUEBA:

System.out.println(Arrays.toString(a.split(" (?=\\d+)"))); 

SALIDA:

[LODIXAL COMP, 15] 
+0

con Cadena a = "LODIXAL 12 3 COMP 15"; Salida: [LODIXAL, 12, 3 COMP, 15] – smas

+0

@smas Sí, esta expresión regular no funcionará con su cadena, necesitará 'a.split (" (? = \\ d + $) ")' para eso. Puedo editar la respuesta, pero no sabemos si OP puede tener cadenas así en su código. – anubhava

+0

hay otra situación como esta: String a = "ACEDICON COMP 1 X 5 MG" y debería dividirse en "ACEDICON COMP 1" y "X 5 MG". ¿Cómo puedo hacerlo? – michdraft

Cuestiones relacionadas