emojis使用的Android计数字符

问题描述 投票:3回答:1

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

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

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

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

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

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

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

如果他们不统一,我怎么得到真正的计数?

android emoji utf
1个回答
0
投票

我的方法是导入这个库:

implementation 'com.vdurmont:emoji-java:4.0.0'

然后我创建了一个实用工具方法来获取将emojis计为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;

这可以解释所有最新的表情符号(取决于你的图书库的最新版本)。检查其他人在库上做的一些分叉,因为它们在某些情况下添加了缺少的表情符号模式。

© www.soinside.com 2019 - 2024. All rights reserved.