我有这样的二进制字符串:字符串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]);
}
但是当我运行它时,这种方法不起作用。 任何人都可以纠正吗?谢谢
答案 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]