标准化除 ñ 以外的字符串
Normalize a string except ñ
我有以下示例代码:
String n = "Péña";
n = Normalizer.normalize(n, Normalizer.Form.NFC);
如何规范化字符串 n
除了 ñ
?
不仅是那个字符串,我正在制作一个表格,我想只保留 ñ's
,其他所有内容都没有变音符号。
将所有出现的“ñ”替换为不可打印字符“\001”,因此 "Péña" 变为 "Pé[=18=]1a"。然后调用 Normalizer.normalize()
将“é”分解为 "e" 和一个单独的变音符号。最后去掉变音符号,将不可打印的字符转换回“ñ”。
String partiallyNormalize(String string)
{
string = string.replace('ñ', '[=10=]1');
string = Normalizer.normalize(string, Normalizer.Form.NFD);
string = string.replaceAll("[\p{InCombiningDiacriticalMarks}]", "");
string = string.replace('[=10=]1', 'ñ');
return string;
}
您可能还想为 Easy way to remove UTF-8 accents from a string? 的首选答案投票,我在其中学习了如何删除变音符号。
我有以下示例代码:
String n = "Péña";
n = Normalizer.normalize(n, Normalizer.Form.NFC);
如何规范化字符串 n
除了 ñ
?
不仅是那个字符串,我正在制作一个表格,我想只保留 ñ's
,其他所有内容都没有变音符号。
将所有出现的“ñ”替换为不可打印字符“\001”,因此 "Péña" 变为 "Pé[=18=]1a"。然后调用 Normalizer.normalize()
将“é”分解为 "e" 和一个单独的变音符号。最后去掉变音符号,将不可打印的字符转换回“ñ”。
String partiallyNormalize(String string)
{
string = string.replace('ñ', '[=10=]1');
string = Normalizer.normalize(string, Normalizer.Form.NFD);
string = string.replaceAll("[\p{InCombiningDiacriticalMarks}]", "");
string = string.replace('[=10=]1', 'ñ');
return string;
}
您可能还想为 Easy way to remove UTF-8 accents from a string? 的首选答案投票,我在其中学习了如何删除变音符号。