2012-01-12 66 views
5

Tôi có chuỗi như sau: "LODIXAL COMP 15"cách tách chuỗi chứa số trong java?

Làm cách nào để chia nhỏ thành "LODIXAL COMP" và "15"?

String a = "LODIXAL COMP 15"; 

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

Vui lòng đọc [this] (http://docs.oracle.com/javase/tutorial/essential/regex/) – mre

+3

Tiêu chí chính xác cho vị trí phân chia là gì? Chuỗi trả về đầu tiên có thể chứa chữ số không? – NPE

+0

trả lời câu hỏi của @ aix sẽ giúp tạo câu trả lời hay cho bạn. Những gì bạn muốn nhận được cho: AAA BBB 2 3 CCC 4? [AAA BBB, 2, 3, CCC, 4]? – smas

Trả lời

14

Sử dụng này regex positive lookahead dựa trên:

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

KIỂM TRA:

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

OUTPUT:

[LODIXAL COMP, 15] 
+0

Điều gì với String a = "LODIXAL 12 3 COMP 15"; Đầu ra: [LODIXAL, 12, 3 COMP, 15] – smas

+0

@smas Có regex này sẽ không hoạt động với chuỗi của bạn, bạn sẽ cần 'a.split (" (? = \\ d + $) ")' cho điều đó. Tôi có thể chỉnh sửa câu trả lời nhưng chúng tôi không biết liệu OP có thể có chuỗi như vậy trong mã của họ hay không. – anubhava

+0

có tình huống khác như thế này: String a = "ACEDICON COMP 1 X 5 MG" và nó phải được chia thành "ACEDICON COMP 1" và "X 5 MG". Tôi có thể làm như thế nào? – michdraft

Các vấn đề liên quan