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();