Ví dụ:Hủy bỏ tất cả các dấu chấm câu từ ngày kết thúc của một chuỗi
// A B C. -> A B C
// !A B C! -> !A B C
// A? B?? C??? -> A? B?? C
Dưới đây là những gì tôi có cho đến nay:
while (endsWithRegex(word, "\\p{P}")) {
word = word.substring(0, word.length() - 1);
}
public static boolean endsWithRegex(String word, String regex) {
return word != null && !word.isEmpty() &&
word.substring(word.length() - 1).replaceAll(regex, "").isEmpty();
}
giải pháp hiện tại này hoạt động, nhưng vì nó đã gọi String.replaceAll
trong vòng endsWithRegex
, chúng tôi s hould có thể làm điều gì đó như thế này:
word = word.replaceAll(/* regex */, "");
Bất kỳ lời khuyên nào?
Thử 'word = word.replaceAll (" \\ s * \\ p {Punct} + \\ s * $ "," ");'. Nó sẽ loại bỏ tất cả các dấu câu và sẽ cắt chuỗi từ bên phải. –