我在这个问题上遇到了困难,需要一些新鲜的眼睛来帮助我,我不确定为什么这段代码会出现这种情况。
String string = new String(new char[] {(char) 0x01, (char) 0x02, ... ,(char) 0xFC});
输出结果一切正常,直到最后一个数字(0xFC),它返回-4。我知道这是一个十六进制值,但如果我使用十进制值252进行相同的操作,它也会返回负数。希望这只是一个简单的解决方案,我只是看不到它。
提前感谢。将字符串转换为字符数组就像这样简单:
String str = "someString";
char[] charArray = str.toCharArray();
能否多解释一下你尝试做什么?
* 更新 *
如果我理解你的新评论正确,你可以使用一个字节数组,示例已提供。
byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array();
for (byte b : bytes) {
System.out.format("0x%x ", b);
}
以下是输出结果:
0x65 0x10 0xf3 0x29
0xFC
是一个正整数;char
类型不带符号。结果代码点是 U+00FC - 拉丁小写字母 U 带分音符。你是如何输出字符串的? - McDowell