我想知道用户在 EditText
中输入了多少个表情符号。如果用户只输入表情符号,并使用 3 个或更少,我希望能够在应用程序中以更大的字体显示该字符串。
现在我确实看到了这篇文章,它确实有助于检测字符串中是否存在表情符号,但我一直无法弄清楚如何计算表情符号的数量。
Detecting if a character in a String is an emoticon (using Android)
有谁知道如何从字符串中获取表情符号的数量?
最佳答案
另一种方法是利用 EmojiCompat
。此代码假定您在应用启动时初始化了 EmojiCompat
。这里的基本思想是让 EmojiCompat
处理你的 CharSequence
,在任何表情符号出现的地方插入 EmojiSpan
的实例,然后检查结果,返回一个已处理的 Spannable
中 EmojiSpan
实例的计数。
public static int getEmojiCount(CharSequence charSequence) {
int count = 0;
CharSequence processed = EmojiCompat.get().process(charSequence, 0, charSequence.length() -1, Integer.MAX_VALUE, EmojiCompat.REPLACE_STRATEGY_ALL);
if (processed instanceof Spannable) {
Spannable spannable = (Spannable) processed;
count = spannable.getSpans(0, spannable.length() - 1, EmojiSpan.class).length;
}
return count;
}
不要忘记在app gradle中添加依赖:
implementation 'androidx.emoji:emoji:1.1.0'
关于android - 获取字符串中的表情符号计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45241081/