我有这样的二进制字符串:字符串 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]);
}
但是当我运行它时,这种方法不起作用。任何人都可以纠正吗?谢谢
byte[] 未初始化。所以我们需要在使用它之前进行初始化。
byte[] b = new byte[a.length()];
try this
你没有给你的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]