2012-01-19 38 views
13

thể trùng lặp:
Java split() method strips empty strings at the end?phương pháp phân chia của lớp String bỏ qua dải phân cách dấu chấm phẩy

Trong Java, Tôi đang sử dụng String phương pháp chia tách một chuỗi chứa giá trị cách nhau bởi dấu chấm phẩy.

Hiện tại, tôi có dòng sau hoạt động trong 99% tất cả các trường hợp.

String[] fields = optionsTxt.split(";"); 

Khi sử dụng sau chuỗi mọi thứ đều hoàn hảo:

"House;Car;Street;Place" => [House] [Car] [Street] [Place] 

Nhưng khi tôi sử dụng sau String, chia Phương pháp bỏ qua hai dấu chấm phẩy ngoái.

"House;Car;;" => [House][Car] 

Có vấn đề gì? Hay có cách nào khác không?

+0

Bạn đang mong đợi một không gian trống làm đầu ra thứ ba? – Tudor

+0

có, "House; Car ;;" nên kết quả trong [House] [Car] [] [] – endian

Trả lời

17

Hãy thử dưới đây:

String[] = data.split(";", -1); 

Tham khảo Javadoc cho việc lấy split phương pháp hai đối số s để biết chi tiết.

Khi gọi String.split(String), nó gọi String.split(String, 0) và loại bỏ các chuỗi rỗng (như tài liệu nói), khi gọi String.split(String, n) với n < 0, nó sẽ không hủy bất kỳ thứ gì.

+0

Có! Chuỗi [] = data.split (";"); Không thể xử lý nhiều dấu chấm phẩy. Thêm -1 giải quyết nó! –

1

Bạn có thể sử dụng ổi của Splitter

Từ tài liệu:

Splitter.on(',').split("foo,,bar, quux") 

Sẽ trở lại iterable của ["foo", "", "bar", " quux"]

+0

Tôi nghĩ rằng OP không muốn '.trimResults(). omitEmptyStrings();' ... – thejh

1

này được đề cập một cách rõ ràng trong javadocs Java API:

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)

"Trailing chuỗi rỗng do đó không được đưa vào mảng kết quả."

Nếu bạn muốn chuỗi rỗng, hãy thử sử dụng phiên bản hai đối số của cùng một phương pháp, với đối số thứ hai phủ định:

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String,%20int)

"Nếu n là không dương thì mẫu sẽ được áp dụng nhiều lần nhất có thể và mảng có thể có độ dài bất kỳ".

Chỉnh sửa: Hm, liên kết của tôi với neo không hoạt động.

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