Когда смотрю что получилось, то вижу, что символы других языков, например французского отображаются неверно(вроде они кодируются 2-мя байтами, а не одним), соответственно являются отдельными узлами. Подскажите, пожалуйста, что сделать, чтобы один символ в слове являлся одним узлом? Хранить char array, а не char значение?
1,2 картинка - класс префиксного дерева
3 картинка - пример инфы из документа(красным обвёл пример такой буквы)
4 картинка - пример того, как отображается
Уже отчаиваюсь, думаю, м.б. хэш-мапой просто воспользоваться:(
если ты работаешь только с европейскими алфавитами, то у тебя проблема, скорее всего, не в алгоритме префиксного дерева, а в том, что где-то по пути от юзера кодировка неверная
Хорошо. Правильно ли я понимаю, что теперь мне надо подобрать/угадать его кодировку и работать в ней же?
ну смотри, твоей программе прилетает какой-то поток байтов из файла или из сети, это просто нули и единицы, а то, как их интерпретировать уже решаешь ты, выставляя кодировку. Поэтому если читаешь из файла, то хорошо бы удостовериться, что это utf-8
наверное тебе стоит работать не с чарами, а с интами и использовать не charAt(), а codePointAt()
Спасибо, попробую. Проверил кодировку у дока - там UTF-8🥴
проблема в том, что суррогатная пара - это 2 чара, а не один
Обсуждают сегодня