我是android新手。 在我的价值资源中,我创建了一个xml布局并将这一行放入其中:
<integer name="mode_happy"> 0x1F60A</integer>
在我的活动中我想将0x1F60A转换为String。为此,我创建了一个方法:
private String getStringOfEmojiCode(int emogiCode) {
StringBuilder sb = new StringBuilder();
//convert hex to char
sb.append(Character.toChars(emogiCode));
return sb.toString();
}
当我将mode_happy
传递给我的方法时:
mSelectedMode =
getStringOfEmojiCode(getResources().getInteger(R.integer.mode_happy));
我收到了这个:
mSelectedMode: ��
但我想这样:0x1F60A
我的错在哪里?
答案 0 :(得分:0)
格式化程序可用于以特定格式的十六进制字符构建字符串:
String mSelectedMode
= String.format("0x%05X", getResources().getInteger(R.integer.mode_happy));
这对我有用,你存储为整数的十六进制为我转换为十进制,但使用格式化程序工作。这也意味着我不必使用任何其他方法。
说明:
格式0x%05X
采用由%05X
表示的5位十六进制字符,其中包含&#39; X&#39;表示十六进制可以使用小写x,在这种情况下,它将以小写形式给出输出:0x1f60a
。 0x
被添加到格式中,以便将其作为每个字符串的前缀。有关格式化的详细信息,请参阅this。