Java中字符串转字符数组

56

我在这个问题上遇到了困难,需要一些新鲜的眼睛来帮助我,我不确定为什么这段代码会出现这种情况。

String string = new String(new char[] {(char) 0x01, (char) 0x02, ... ,(char) 0xFC});
输出结果一切正常,直到最后一个数字(0xFC),它返回-4。我知道这是一个十六进制值,但如果我使用十进制值252进行相同的操作,它也会返回负数。希望这只是一个简单的解决方案,我只是看不到它。 提前感谢。

1
你想要返回什么? - Venkata Krishna
所以你正在尝试从字符数组中创建一个字符串? - Hunter McMillen
0xFC 是一个正整数;char 类型不带符号。结果代码点是 U+00FC - 拉丁小写字母 U 带分音符。你是如何输出字符串的? - McDowell
0xFC在这里的结果是252,而不是-4 http://ideone.com/cIi9J - Chris
1个回答

159

将字符串转换为字符数组就像这样简单:

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


我正在尝试发送一个包含字节数组或字符数组的数据包,以获取我在封闭网络中拥有的设备的特定值。我正在制作一个远程应用程序,只需要这9个字节的数组,以提供特定的十六进制或十进制值。 - Cody Keasberry
3
以上内容的简便写法是:"string".toCharArray()。这可以为您节省一行代码。 - Daniel Watrous

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接