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

时间:2014-12-16 11:31:17

标签: java arrays binary binary-data

我有这样的二进制字符串:字符串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]);
    }

但是当我运行它时,这种方法不起作用。 任何人都可以纠正吗?谢谢

2 个答案:

答案 0 :(得分:0)

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

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

try this

答案 1 :(得分:0)

您尚未为byte[] 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]