我试图从数据库中获取长字符串中的emoji代码,格式为:0x1F60A…所以我可以访问代码,但它是一个字符串。
起初,我试图通过执行tv.setText(beforeEmo + getEmijoByUnicode((int)emoKind));
来转换变量,但android studio提示:“无法将java.lang.string转换为int”…
getemijobyunicode方法是:
public String getEmijoByUnicode(int unicode) {
return new String(Character.toChars(unicode));
}
所以我试了这个:
tv.setText(beforeEmo + getEmijoByUnicode(Integer.parseInt(emoKind)));
但它以无数的形式恐怖而崩溃。有没有办法让表情符号出现在我的文本中?
最佳答案
尝试
Integer.parseInt("1F60A", 16);
或
Long.parseLong("1F60A", 16);
将字符串转换为int或long。所以你必须去掉“0x”,就像这样
getEmijoByUnicode(Integer.parseInt(emoKind.substring(2), 16));