我试图获取我的EditText中的表情符号已用完的字符数。原因是我的EditText的maxLength为25个字符。
我已经看过其他获得计数的例子,例如:
titleView.getText().toString()).length()
这会将每个表情符号计为2个字符,因此我的输入在12 emojis = 24个字符处停止。
我遇到的问题是我认为此计数已关闭,我的服务器期望收到不超过25个字符的字符串,因此它必须截断其中一些表情符号。
然后当我在我的应用程序中检索此数据时,它会导致崩溃。我的网络服务不知道如何处理它。它进入onSuccess回调,但当我尝试查询响应时,它说它是一个空对象。
如果每个表情符号统一为2个字符长,为什么这对我不起作用?
如果他们不统一,我该如何得到真正的统计?
答案 0 :(得分:0)
我的处理方法是导入该库:
implementation 'com.vdurmont:emoji-java:4.0.0'
然后,我创建了一个实用程序方法来获取将表情符号计数为1的字符串的长度:
fun getLengthWithEmoji(s: String): Int{
var emojiCount = EmojiParser.extractEmojis(s).size;
var noEmojiString = EmojiParser.removeAllEmojis(s);
var emojiAndStringCount = emojiCount + noEmojiString.length;
return emojiAndStringCount;
}
通常要'获取字符串中的表情符号计数',我会使用此行:
var emojiCount = EmojiParser.extractEmojis(s).size;
这说明了所有最新的表情符号(取决于您的图书馆的最新信息)。检查其他人在库中创建的一些fork,因为在某些情况下它们添加了缺少的表情符号模式。