我有一组数据,其中包含重音 ascii。我想将口音转换为纯英文字母。我通过以下代码实现了这一点:
import java.text.Normalizer;
import java.util.regex.Pattern;
public String deAccent(String str) {
String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD);
Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
return pattern.matcher(nfdNormalizedString).replaceAll("");
}
但是这段代码缺少的是排除字符,我不知道如何从转换中排除某些字符,例如我想从杜塞尔多夫这个词中排除字母“ü”,所以当我转换时,它不会变成杜塞尔多夫字。有没有办法将排除列表传递给方法或匹配器并且不转换某些重音字符?