我想要计算提供的Java字符串中感知的表情符号字符的数量。我目前正在使用emoji4j库,但它不适用于像这样的字形集群:
调用EmojiUtil.getLength("")
会返回4
而不是1
,同样调用EmojiUtil.getLength("")
会返回5
而不是2
。
Java中String
上是否有任何API或方法可以轻松计算字形集群?
我一直在四处寻找,但可以理解的是,codePoints()
上的String
方法不仅包括可见的表情符号,还包括零宽度的连接符。
我还尝试使用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
之类的内容返回""
。