Java parseInt(";0x1F60A";)以NumberformatException结束
我试图从数据库中获取长字符串中的表情代码,格式如下:0x1F60A。。。因此我可以访问代码,但它将是一个字符串 首先,我尝试通过执行Java parseInt(";0x1F60A";)以NumberformatException结束,java,android,emoji,numberformatexception,Java,Android,Emoji,Numberformatexception,我试图从数据库中获取长字符串中的表情代码,格式如下:0x1F60A。。。因此我可以访问代码,但它将是一个字符串 首先,我尝试通过执行tv.setText(beforeEmo+getEmijoByUnicode((int)emoKind))来强制转换变量但Android Studio提示:“无法将'java.lang.String'强制转换为int” getEmijoByUnicode方法是: public String getEmijoByUnicode(int unicode) { r
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);
或
将字符串转换为int或long。所以你必须像这样去掉“0x”
getEmijoByUnicode(Integer.parseInt(emoKind.substring(2), 16));
也许你的意思是没有引号的0x1F60A
?否则,您只有一个字符串。否则,parseInt
接受基数参数16
getEmijoByUnicode(Integer.parseInt(emoKind.substring(2), 16));