Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中将字符串数组元素强制转换为字节数组_Java_Arrays - Fatal编程技术网

java中将字符串数组元素强制转换为字节数组

java中将字符串数组元素强制转换为字节数组,java,arrays,Java,Arrays,我有一个字符串数组的形式: String[] s = {0x22, 0xD2, 0x01} 现在我必须将其转换为字节数组形式,如: byte[] bytes = {(byte)0x22, (byte)0xD2, (byte)0x01} 它可以在c#中的单行中完成,但是如何在Java中完成它,因为我必须将字节数组附加到另一个相同类型和格式的数组中 在这里,我包含了部分代码,因为我不能包含全部代码: String sr = "22D201"; String[] s = {sr.substring

我有一个字符串数组的形式:

String[] s = {0x22, 0xD2, 0x01}
现在我必须将其转换为字节数组形式,如:

byte[] bytes = {(byte)0x22, (byte)0xD2, (byte)0x01}
它可以在c#中的单行中完成,但是如何在Java中完成它,因为我必须将
字节
数组附加到另一个相同类型和格式的数组中

在这里,我包含了部分代码,因为我不能包含全部代码:

String sr = "22D201";
String[] s = {sr.substring(0, 2),sr.substring(2, 4),sr.substring(4)};
byte[] ret = new byte[]{(byte)0x2C, (byte)0x04, (byte)0x01, (byte)0x67, (byte)0x00, (byte)0x00, (byte)0x3D};
现在我必须将
byte[]bytes
附加到
byte[]ret
中,但我不能,因为数组是以字符串的形式出现的,即
String[]s
。因此,如何转换
字符串[]s
,以便我可以将其添加到
字节[]ret

您可以使用

您还可以使用字节数组和指定的编码方案初始化
字符串

String s=新字符串(新字节[]{/*字节数据。*/},“UTF-8”)

对于
字符串的数组
,每个字符串的字节数组因此可以按如下方式处理:

for(final String s : lStrings) {
     byte[] lBytes = s.getBytes();
}
如果要生成这些类型的连续数组,可以使用


这个
String[]s={0x22,0xAC,0xFF}无效Java:“不兼容类型:int无法转换为字符串”。另外,
AC
FF
对于一个字节来说太大了。请回答您的问题并包含您的真实代码。嘿,伙计们,谢谢,我收到了这个。我用了这个方法,它是有效的
publicstaticbyte[]hexStringToByteArray(strings){int len=s.length();byte[]data=newbyte[len/2];for(int i=0;iString[]
(即使他没有任何),而不是
String
。谢谢你的建议!希望现在已经修好了。
ByteArrayOutputStream b = new ByteArrayOutputStream();
for(final String s : lStrings) {
    b.write(s.getBytes());
}
final byte[] lTotalBytes = b.toByteArray();
/* Make sure all the bytes are written. */
b.flush();
/* Close the stream once we're finished. */
b.close();