Я пытаюсь написать код 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;
}
Нормализатор может разлагать/составлять ваш персонаж по своему усмотрению:
String decomposed = Normalizer.normalize(String.valueOf('ï'), Form.NFD);
результатом являются два символа (i, double-dot)
String composed = Normalizer.normalize(decomposed, Form.NFC);
результатом является один символ (ï)
Если я правильно вас пойму, вы
return Normalizer.normalize("\u0069\u0307", Form.NFC).charAt(0);
Для двойных точек используйте \u0308
.