Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java7中将重音和字符组合成一个字符_Java_Unicode_Utf 8_Normalize - Fatal编程技术网

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

在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

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

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