我正在使用8位数组,并且试图将其转换为Java中的单个char。我正在尝试按照
byte[] bytes2 = {0,0,0,0,0,0,0,0};
char c = (char) bytes2);
它引发了一个编译错误,我无法将byte []转换为char。我已经将其编译,但仅通过将char c分配给数组的元素之一才能正常工作。我只是停留在这一部分,并希望获得一些帮助。
谢谢
答案 0 :(得分:2)
byte[]
是字节数组,1个字节是8位,1个字符也是8位。
您用byte[]
启动{0,0,0,0,0,0,0,0}
;这意味着您在bytes2
变量中存储了8 * 8 = 64位。
因此您不能将64位数据存储到单个字符(8位)中。
但是您可以这样做:
byte[] bytes2 = {0,0,0,0,0,0,0,0};
char c = (char) bytes2[0]; // store first element (8 bit) into single char (1 bit) and cast it.
答案 1 :(得分:1)
您不能将其转换为单个char
。相反,您可以将其转换为单个String
,然后将其转换为char
数组,如下所示,
byte[] bits2 = {0, 0, 0, 0, 0, 0, 0, 0};
String value = new String(bits2);
char[] chars = value.toCharArray();