如何将布尔数组(或BitSet)转换为字符串,反之亦然。
示例:
boolean[] ar = {true,false,false,false,false};
print(BitArrayToString(ar));
应返回以下其中一项
10000 //binary
16 //decimal
10 //hex, prefered
其他方面也应该起作用
ar = StringToBitArray(BitArrayToString(ar));
答案 0 :(得分:3)
long bitSetInt = 0;
for (int i = 0 ; i < ar.length ; i++) {
bitSetInt = (bitSetInt | toDigit(ar[i])) << 1;
}
println(String.format("%x", bitSetInt));
,其中
int toDigit(boolean b) { return b?1:0;}
只要ar
数组小于long的大小,就会起作用。使用http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax来满足其他格式需求
答案 1 :(得分:2)
嗯,你可以这样做:
StringBuilder builder = new StringBuilder();
for (int i = 0; i < array.length; i++) {
if (array[i]) builder.append("1"); else builder.append("0");
}
return builder.toString();