String s ="SSR/DANGEROUS GOODS AS PER ATTACHED SHIPPERS
/DECLARATION 1 PACKAGE
NFY
/ACME CONSOLIDATORS"
Làm cách nào để bỏ không gian giữa "PACKAGE" và "NFY"?Cách xóa khoản trả lại bằng xe ô tô từ một chuỗi
String s ="SSR/DANGEROUS GOODS AS PER ATTACHED SHIPPERS
/DECLARATION 1 PACKAGE
NFY
/ACME CONSOLIDATORS"
Làm cách nào để bỏ không gian giữa "PACKAGE" và "NFY"?Cách xóa khoản trả lại bằng xe ô tô từ một chuỗi
Hãy thử mã này:
s = s.replaceAll("PACKAGE\\s*NFY", "PACKAGE NFY");
+0 Điều này không được tổng quát, đủ để giúp người khác. –
Bạn đã thử một chức năng thay thế? Một cái gì đó trong dòng:
youString.Replace("\r", "")
string = string.replace(/\s{2,}/g, ' ');
Thôi nào, câu hỏi được gắn thẻ 'java'. Bạn không thể đưa ra một giải pháp trong 'Java'? – Romain
Rất tiếc !!! Hey nhưng bạn vẫn có thể sử dụng mô hình mather và thay thế chuỗi. –
Java String.replaceAll
trên thực tế có một biểu thức chính quy. Bạn có thể loại bỏ tất cả các dòng mới với:
s = s.replaceAll("\\n", "");
s = s.replaceAll("\\r", "");
Nhưng điều này sẽ loại bỏ tất cả dòng mới.
Lưu ý đôi \
's: để chuỗi được chuyển đến trình phân tích cụm từ thông dụng là \n
.
Bạn cũng có thể làm được điều này, đó là thông minh hơn:
s = s.replaceAll("\\s{2,}", " ");
Điều này sẽ loại bỏ tất cả các chuỗi của 2 hoặc nhiều khoảng trắng, thay thế chúng bằng một không gian duy nhất. Vì các dòng mới cũng là khoảng trống, nên thực hiện thủ thuật cho bạn.
Ngoài ra, 's.replaceAll (" (?: \\ n | \\ r) "," ");' đạt được điều tương tự trong một câu lệnh đơn. Và người ta có thể điều chỉnh biểu thức để chọn lọc hơn. – Romain
Bạn có thể * luôn * khớp với văn bản có dòng mới trong đó; bạn không cần một lá cờ cho điều đó. Những gì MULTILINE làm là thay đổi ý nghĩa của các neo, '^' và '$', cho phép chúng khớp với nhau ở các ranh giới dòng cũng như đầu và cuối của toàn bộ chuỗi. Vì không có neo trong regex của bạn, cờ MULTILINE không có hiệu lực. –
Bạn nói đúng - chỉ cần thử bằng 'Pattern.MULTILINE' đã nhận xét. Nhưng (những gì tôi đã thử ban đầu) 's = s.replace (" \\ s {2,} "," ");' không hoạt động. Nó không loại bỏ các dòng mới. Bất kỳ ý tưởng tại sao? – craigmj
Đây là câu trả lời chính xác. http://stackoverflow.com/questions/10171852/java-replaceall-doesnt-work-well-with-backslash –