我有类似的东西
a = "?????? ???? ??? ??"
Run Code Online (Sandbox Code Playgroud)
我希望实现类似的目标
a[0] = ??
a[1] = ???
a[3] = ?
Run Code Online (Sandbox Code Playgroud)
但由于म占用4个字节,而बि占用8个字节,我无法直接进行.那么可以做些什么呢?在Python中.
我正在计算提供的Java字符串中可感知的表情符号字符的数量。我目前正在使用emoji4j库,但不适用于像这样的字素簇:???
调用EmojiUtil.getLength("???")return 4代替1,类似地调用EmojiUtil.getLength("???")return 5代替2。
StringJava中是否有任何API或方法可以简化字素簇的计数?
我一直在寻找,但可以理解的是codePoints(),a上的方法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;
}
Run Code Online (Sandbox Code Playgroud)
但是它的行为似乎与codePoints()方法相同,返回8类似的东西"???"。