帮助将String字节数组转换为实际字节

bri*_*ian 5 java type-conversion

我有一个如下所示的字符串:["1011000","1000010","1001101","1000011"].

我的论点来自其他地方所以它需要这样.

我需要将其转换为真正的字节数组.

这是我的方法:

public void send(String[] payloadarr)  throws IOException { 
    byte [] payload = {};

    for (int i = 0; i < payloadarr.length; i++) {
        byte x = (byte) payloadarr[i];
        payload[i] = x;
    }
    //do byte stuff with payload
}
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用.抱怨无法转换的类型字符串到字节.

任何人都可以帮我这个类型转换吗?

Boh*_*ian 7

编辑:感谢@Gabe的主意,改变Integer.parseIntByte.parseByte

你可以使用Byte.parseByte(String s,int radix) - 你的基数是2(即基数为2)

这是一个将String数组转换为的方便方法byte[]:

public static byte[] stringsToBytes(String[] payloadarr) {
    byte[] payload = new byte[payloadarr.length];
    for (int i = 0; i < payloadarr.length; i++) {
        payload[i] = Byte.parseByte(payloadarr[i], 2);
    }
    return payload;
}

public static void main(String[] args) {
    System.out.println(Arrays.toString(stringsToBytes(new String[] { "1011000", "1000010", "1001101", "1000011" })));
}
Run Code Online (Sandbox Code Playgroud)

输出:

[88, 66, 77, 67]
Run Code Online (Sandbox Code Playgroud)