2012-01-12 13 views
5

Mam taki ciąg: "LODIXAL COMP 15"jak podzielić ciąg zawiera liczby w java?

Jak mogę podzielić go na "LODIXAL COMP" i "15"?

String a = "LODIXAL COMP 15"; 

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

Proszę przeczytać [to] (http://docs.oracle.com/javase/tutorial/essential/regex/) – mre

+3

Jakie jest dokładne kryterium lokalizacji podziału? Czy pierwszy zwrócony ciąg może zawierać cyfry? – NPE

+0

odpowiedź na pytanie @ aix pomoże ci w uzyskaniu dobrej odpowiedzi. Do czego chcesz się dostać: AAA BBB 2 3 CCC 4? [AAA BBB, 2, 3, CCC, 4]? – smas

Odpowiedz

14

Użyj tego regex positive lookahead oparta:

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

BADANIA:

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

WYJŚCIE:

[LODIXAL COMP, 15] 
+0

co z ciągiem a = "LODIXAL 12 3 COMP 15"; Wyjście: [LODIXAL, 12, 3 COMP, 15] – smas

+0

@smas Tak, to wyrażenie nie będzie działać z twoim ciągiem, będziesz potrzebować 'a.split (" (? = \\ d + $) ")' do tego. Mogę edytować odpowiedź, ale nie wiemy, czy OP może mieć taki ciąg w swoim kodzie. – anubhava

+0

jest inna sytuacja: String a = "ACEDICON COMP 1 X 5 MG" i powinna być podzielona na "ACEDICON COMP 1" i "X 5 MG". Jak mogę to zrobić? – michdraft