Как подсчитать кластеры графем или «воспринимаемые» символы эмодзи в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как подсчитать кластеры графем или «воспринимаемые» символы эмодзи в Java

Сообщение Anonymous »

Мне нужно подсчитать количество воспринимаемых символов эмодзи в предоставленной строке Java. В настоящее время я использую библиотеку emoji4j, но она не работает для таких кластеров графем, как этот: 👩‍👩‍👦‍👦

Вызов EmojiUtil.getLength(" 👩‍👩‍👦‍👦") вместо этого возвращает 4 из 1, и аналогичный вызов EmojiUtil.getLength("👻👩‍👩‍👦‍👦") возвращает 5 вместо 2.

Существуют ли какие-либо API или методы String в Java, которые упрощают подсчет кластеров графем?

Я искал, но, по понятным причинам, метод codePoints() для строки включает в себя не только видимые смайлы, но и соединения нулевой ширины.

Я также пытался это сделать с помощью BreakIterator:

Код: Выделить всё

public static int getLength(String emoji) {
BreakIterator it = BreakIterator.getCharacterInstance();
it.setText(emoji);
int emojiCount = 0;
while (it.next() != BreakIterator.DONE) {
emojiCount++;
}
return emojiCount;
}
Но, похоже, он ведет себя идентично методу codePoints(), возвращая 8 для чего-то вроде "👻👩‍👩‍👦‍👦 ".

Подробнее здесь: https://stackoverflow.com/questions/408 ... rs-in-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»