2012-01-12 13 views
5

Ho una stringa come questa: "LODIXAL COMP 15"come dividere la stringa contiene numeri in java?

Come posso dividerlo in "LODIXAL COMP" e "15"?

String a = "LODIXAL COMP 15"; 

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

Si prega di leggere [questo] (http://docs.oracle.com/javase/tutorial/essential/regex/) – mre

+3

Qual è il criterio esatto per la posizione della divisione? La prima stringa restituita può contenere mai cifre? – NPE

+0

rispondere alla domanda di @ aix ti aiuterà a creare una buona risposta. Cosa vuoi ottenere: AAA BBB 2 3 CCC 4? [AAA BBB, 2, 3, CCC, 4]? – smas

risposta

14

Utilizzare questa regex positive lookahead base:

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

TEST:

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

USCITA:

[LODIXAL COMP, 15] 
+0

cosa con String a = "LODIXAL 12 3 COMP 15"; Uscita: [LODIXAL, 12, 3 COMP, 15] – smas

+0

@smas Sì questa regex non funzionerà con la stringa, sarà necessario 'a.split (" (? = \\ d + $) ")' per quello. Posso modificare la risposta ma non sappiamo se OP può avere una stringa del genere nel suo codice. – anubhava

+0

c'è un'altra situazione come questa: String a = "ACEDICON COMP 1 X 5 MG" e dovrebbe essere suddivisa in "ACEDICON COMP 1" e "X 5 MG". Come posso farlo? – michdraft

Problemi correlati