Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Combining accent and character into one character in java 7

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;
}
like image 610
Bionix1441 Avatar asked Dec 12 '22 00:12

Bionix1441


1 Answers

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.

like image 166
CoronA Avatar answered Dec 28 '22 08:12

CoronA