java中的国家字符替换所有

时间:2014-05-25 21:36:40

标签: java unicode polish

我在更换Java中的一些字符时遇到了很大的问题。我想删除所有不是字母,数字或特殊国家字符的字符,例如“ę,ą”。当我使用函数replaceAll("\W", " ")时,也会删除特殊字符。

示例字符串:“Jestźle,alebędzielepiej。”

如何取代:“Jest le ale b dzie lepiej”

它应该如何:“Jestźlealebędzielepiej”

对不起我不太好的英语:)

1 个答案:

答案 0 :(得分:0)

你的英语比Java的波兰语好。 Java的正则表达式不会说波兰语,所以它只考虑a..z“国家字符”(加上数字和下划线 - GREP显然是由程序员设计的)。这是公平的,可行的:一种语言的“正常”特征对另一种语言来说“怪异”。

您可以在自定义否定字符类中总结一些额外的非ASCII字符:

replace ("[^\wźę ]", " ");

(你应该添加其他重音字符,也许删除非波兰字符,如Q和X)。