在Java 7中将重音和字符组合成一个字符

时间:2015-03-05 08:44:40

标签: java utf-8

我正在尝试编写一个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;
}

1 个答案:

答案 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