Java中如何将二进制字符串转换为二进制字节数组

Java中如何将二进制字符串转换为二进制字节数组,java,arrays,binary,binary-data,Java,Arrays,Binary,Binary Data,我有这样的二进制字符串:string a=“100100”。 我需要有二进制字节数组:byte[]b={1,0,0,1,0,0}作为输出 这是我的代码: String a="100100"; byte[] b = null; for (int i = 0; i < a.length(); i++) { b[i]=a.charAt(i)=='1'? (byte) 1: (byte) 0; System.out.println("b["

我有这样的二进制字符串:string a=“100100”。 我需要有二进制字节数组:byte[]b={1,0,0,1,0,0}作为输出

这是我的代码:

    String a="100100";

    byte[] b = null;
    for (int i = 0; i < a.length(); i++) {
        b[i]=a.charAt(i)=='1'? (byte) 1: (byte) 0;
        System.out.println("b["+i+"]: "+b[i]);
    }
String a=“100100”;
字节[]b=null;
对于(int i=0;i
但当我运行它时,这种方法不起作用。
谁能改正一下吗?谢谢

字节[]未初始化。所以我们需要在使用它之前进行初始化

byte[] b = new byte[a.length()];

try this

您尚未为
字节[]b
赋值,因此导致
NullPointerException
,因为您稍后通过索引引用它

请尝试以下方法:

String a="100100";

byte[] b = new byte[a.length()]; // here
for (int i = 0; i < a.length(); i++) {
    b[i]=a.charAt(i)=='1'? (byte) 1: (byte) 0;
}
System.out.println(Arrays.toString(b)); // easier print once finished
[1, 0, 0, 1, 0, 0]