java 7 中的重音和字符合并为一个字符

Combining accent and character into one character in java 7

我正在尝试编写 java 代码,其中 returns 单个字符结合了字符和重音。合并的实际结果是一个字符串而不是一个字符。 以下是一个简单的方法来说明我正在尝试做什么。谢谢

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;
}

标准化器可以decompose/compose你喜欢的角色:

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.