在Java7中将重音和字符组合成一个字符
我正在尝试编写一个java代码,返回一个结合字符和重音的单个字符。组合的实际结果是一个字符串而不是一个字符。 下面是一个简单的方法来说明我要做的事情。多谢各位在Java7中将重音和字符组合成一个字符,java,unicode,utf-8,normalize,Java,Unicode,Utf 8,Normalize,我正在尝试编写一个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 dou
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;
}
Normalizer可以根据需要分解/合成角色:
String decomposed = Normalizer.normalize(String.valueOf('ï'), Form.NFD);
结果是两个字符(i,双点)
结果是一个字符(ï)
如果我对你的理解是正确的,你会寻求帮助
return Normalizer.normalize("\u0069\u0307", Form.NFC).charAt(0);
对于双点,请使用
\u0308
如果我理解正确,是否要返回字符串?为什么不进行私有字符串转换(char c)并返回“\u0069”+“\u0307”?非常感谢,我们花了2-3个小时试图找到解决方案
return Normalizer.normalize("\u0069\u0307", Form.NFC).charAt(0);