规范化除ñ之外的字符串

时间:2016-03-19 05:02:54

标签: java normalize

我有以下示例代码:

String n = "Péña";
n = Normalizer.normalize(n, Normalizer.Form.NFC);

除了n以外,我如何规范化字符串ñ

不仅仅是那个字符串,我正在创建一个表单,我想保留ñ's,以及其他没有变音符号的内容。

1 个答案:

答案 0 :(得分:4)

将所有出现的“ñ”替换为不可打印的字符“\ 001”,因此“Péña”变为“Pé\ 001a”。然后拨打Normalizer.normalize()将“é”分解为“e”和单独的变音标记。最后删除变音标记,并将不可打印的字符转换回“ñ”。

String partiallyNormalize(String string)
{
    string = string.replace('ñ', '\001');
    string = Normalizer.normalize(string, Normalizer.Form.NFD);
    string = string.replaceAll("[\\p{InCombiningDiacriticalMarks}]", "");
    string = string.replace('\001', 'ñ');
    return string;
}

你可能还想提出Easy way to remove UTF-8 accents from a string?的首选答案,在那里我学习了如何删除变音符号。

相关问题