emojis使用的Android计数字符

时间:2015-10-12 14:32:27

标签: android emoji utf

我试图获取我的EditText中的表情符号已用完的字符数。原因是我的EditText的maxLength为25个字符。

我已经看过其他获得计数的例子,例如:

titleView.getText().toString()).length()

这会将每个表情符号计为2个字符,因此我的输入在12 emojis = 24个字符处停止。

我遇到的问题是我认为此计数已关闭,我的服务器期望收到不超过25个字符的字符串,因此它必须截断其中一些表情符号。

然后当我在我的应用程序中检索此数据时,它会导致崩溃。我的网络服务不知道如何处理它。它进入onSuccess回调,但当我尝试查询响应时,它说它是一个空对象。

如果每个表情符号统一为2个字符长,为什么这对我不起作用?

如果他们不统一,我该如何得到真正的统计?

1 个答案:

答案 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,因为在某些情况下它们添加了缺少的表情符号模式。