String s = "hi hello";
s = s.replaceAll("\\s*", " ");
System.out.println(s);
Tôi có đoạn code ở trên, nhưng tôi không thể làm việc ra lý do tại sao nó tạoString.replaceAll Strange Hành vi
h i h e l l o
hơn
hi hello
Rất cám ơn
String s = "hi hello";
s = s.replaceAll("\\s*", " ");
System.out.println(s);
Tôi có đoạn code ở trên, nhưng tôi không thể làm việc ra lý do tại sao nó tạoString.replaceAll Strange Hành vi
h i h e l l o
hơn
hi hello
Rất cám ơn
Sử dụng +
định lượng để khớp với 1 hoặc nhiều khoảng trống thay vì *
: -
s = s.replaceAll("\\s+", " ");
\\s*
có nghĩa là phù hợp với 0 hoặc nhiều không gian và sẽ khớp với ký tự trống trước mỗi ký tự và được thay thế bằng dấu cách.
*
khớp với 0 hoặc nhiều không gian, tôi nghĩ bạn muốn đổi thành +
để khớp với 1 hoặc nhiều không gian.
+1 Thay vì "giữa", tôi sẽ nói "trước" vì nó sẽ khớp với ký tự đầu tiên. –
@PeterLawrey .. Bạn nói đúng. Câu trả lời đã chỉnh sửa. :) –