11

提供されたJava文字列で認識された絵文字の数を数えたいと思っています。現在emoji4jライブラリを使用していますが、次のような書記素クラスタでは機能しません: ‍‍‍</p>

の代わりにreturn を呼び出し、同様にの代わりにreturnを呼び出しEmojiUtil.getLength("‍‍‍")ます。41EmojiUtil.getLength("‍‍‍")52

String書記素クラスターを簡単にカウントできる Javaの 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"‍‍‍"

4

1 に答える 1

2

ICU ライブラリを使用することになりました。これははるかにうまく機能しました。元のコードブロックは単にBreakIterator.

于 2016-12-19T12:38:18.147 に答える