我正在尝试编写一个java代码,它返回一个结合了字符和重音的单个字符。组合的实际结果是字符串而不是单个字符。 以下是一个简单的方法来说明我想要做的事情。谢谢
private char convert (char c)
{
if (c == '\u0130')
{
return '\u0069 \u0307'; // If the return value is String I get i.
} //I need small i double dot
else return c;
}
答案 0 :(得分:9)
Normalizer可以根据需要分解/组合你的角色:
String decomposed = Normalizer.normalize(String.valueOf('ï'), Form.NFD);
结果是两个字符(i,双点)
String composed = Normalizer.normalize(decomposed, Form.NFC);
结果是一个字符(ï)
如果我理解你,你会寻求
return Normalizer.normalize("\u0069\u0307", Form.NFC).charAt(0);
对于双点使用\u0308
。