2012-08-26 34 views
9

Cách cắt chuỗi trong java? Tôi nhận được hàng từ csv, và xls, và có cho dữ liệu ví dụ trong tế bào cũng giống nhưChuỗi cắt trong java

14.015_AUDI

Làm thế nào tôi có thể nói java rằng nó phải tìm chỉ về phía trước _? Vì vậy, sau khi thao tác tôi phải có 14.015. Trong đường ray tôi sẽ làm điều này với gsub, nhưng làm thế nào để làm điều này trong java?

+0

Chỉ cần lưu ý, sử dụng gsub cho điều này trong Rails là overkill lớn, bạn nên sử dụng tách, giống như Java. – Rym

Trả lời

15

Bạn có thể sử dụng String#split:

String s = "14.015_AUDI"; 
String[] parts = s.split("_"); //returns an array with the 2 parts 
String firstPart = parts[0]; //14.015 

Bạn nên thêm kiểm tra lỗi (rằng kích thước của mảng được như mong đợi cho ví dụ)

4
String str = "14.015_AUDI"; 
String [] parts = str.split("_"); 

String numberPart = parts[0]; 
String audi = parts[1]; 
10

Thay vì phân chia tạo ra một danh sách mới và có hai lần sao chép, tôi sẽ sử dụng chuỗi con hoạt động trên chuỗi gốc và không tạo chuỗi mới

String s = "14.015_AUDI"; 
String firstPart = s.substring(0, s.indexOf("_")); 
+0

'indexof' phải được thay đổi trong' indexOf' – Youssef

+0

@Youssef, Cảm ơn cố định –

+0

Điều này là sai, nó trả về 'AUDI'. Cần phải là 'String firstPart = s.substring (0, s.indexOf (" _ ") + 1);' OP muốn '14.015' – alreadytaken

0

Ổi có Splitter

List<String> pieces = Splitter.on("_").splitToList("14.015_AUDI"); 
String numberPart = parts.get(0); 
String audi = parts.get(1); 
0

cần ngắn hơn:

"14.015_AUDI".split("_")[0]; 
Các vấn đề liên quan