在java中将boolean []转换为String,反之亦然

时间:2009-12-14 13:30:47

标签: java

如何将布尔数组(或BitSet)转换为字符串,反之亦然。

示例:

boolean[] ar = {true,false,false,false,false};
print(BitArrayToString(ar));

应返回以下其中一项

10000 //binary
16 //decimal
10 //hex, prefered

其他方面也应该起作用

ar = StringToBitArray(BitArrayToString(ar));

2 个答案:

答案 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();