Combining accent and character into one character in java 7

徘徊边缘 提交于 2020-06-23 08:09:48

问题


I am trying to write a java code that returns a single character combining both a character and an accent. The actual result of combining is a string and not one single character. The following is a simple method to illustrate what I am trying to do. Thank you

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:


Normalizer can decompose/compose your character as you like:

String decomposed = Normalizer.normalize(String.valueOf('ï'), Form.NFD);

result are two character (i, double-dot)

String composed = Normalizer.normalize(decomposed, Form.NFC);

result is one character (ï)

If I understand you correctly you seek

return Normalizer.normalize("\u0069\u0307", Form.NFC).charAt(0);

For double dots use \u0308.



来源:https://stackoverflow.com/questions/28873442/combining-accent-and-character-into-one-character-in-java-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!