Объединение акцента и характера в одного персонажа в Java 7

1

Я пытаюсь написать код 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;
}
  • 0
    если я правильно понимаю, вы хотите вернуть строку? почему бы не преобразовать приватное String (char c) и вернуть "\ u0069" + "\ u0307"?
Теги:
utf-8

1 ответ

8
Лучший ответ

Нормализатор может разлагать/составлять ваш персонаж по своему усмотрению:

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.

  • 0
    Спасибо, что решили мою проблему
  • 0
    Большое спасибо, мы потеряли 2-3 часа, пытаясь найти решение этой проблемы <3

Ещё вопросы

Сообщество Overcoder
Наверх
Меню