我需要刪除一個詞後面的標點符號。例如,應將word?!
更改爲word
,並將string:
更改爲string
。如何刪除Java中單個單詞後面的所有標點符號?
編輯:該算法應該只能刪除字符串末尾的標點符號。字符串中的任何標點符號應保留。例如,doesn't;
應該變成doesn't
。
我需要刪除一個詞後面的標點符號。例如,應將word?!
更改爲word
,並將string:
更改爲string
。如何刪除Java中單個單詞後面的所有標點符號?
編輯:該算法應該只能刪除字符串末尾的標點符號。字符串中的任何標點符號應保留。例如,doesn't;
應該變成doesn't
。
你可以使用正則表達式來修改字符串。
String resultString = subjectString.replaceAll("([a-z]+)[?:!.,;]*", "$1");
有沒有「的話」我知道在哪裏'
是在年底,它是用來作爲一個標點符號。所以這個正則表達式會爲你工作。
如果字符串包含單個單詞並且目的是要刪除*尾部的*標點字符 - OP沒有澄清,則表達式可以被簡化,但是... – bobbymcr
bobbymcr我打算僅刪除尾部標點符號。在這種情況下如何簡化表達式? – user1044680
這很有效,謝謝。 – user1044680
使用接受正則表達式的方法replaceAll(...)
。
String s = "don't. do' that! ";
s = s.replaceAll("(\\w+)\\p{Punct}(\\s|$)", "$1$2");
System.out.println(s);
標點符號是否可以顯示在其他有效的位置?說,如果你有一個詞「:測試」,這個標記留下來還是被替換?基本上,你是否刪除所有標記,或者只是在文字結尾? – Bryan