Integer.parseInt(“0x1F60A”)以NumberformatException结束

时间:2016-09-18 20:10:41

标签: java android emoji numberformatexception

我尝试在数据库的长字符串中获取表情符号代码,格式如下: 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)));

但它与NumberFormatError崩溃。有没有办法让表情符号出现在我的文本中?

1 个答案:

答案 0 :(得分:3)

尝试

Integer.parseInt("1F60A", 16);

Long.parseLong("1F60A", 16);

将字符串转换为int或long。所以你必须摆脱" 0x",就像这样

getEmijoByUnicode(Integer.parseInt(emoKind.substring(2), 16));