[英]How to print BitSet as series of bits
是否有一種方法或方法可以將位集打印為一系列位,例如1001011
例如,以下代碼:
BitSet b = new BitSet(6);
b.set(1);
b.set(3);
b.set(4);
// I want to print b like 101100
System.out.println(b);
謝謝
只需掀起你自己的代碼。 使用 StringBuilder,您幾乎可以對集合進行任何操作。 這是一個簡單的實現:
BitSet bi = new BitSet(6);
bi.set(1);
bi.set(3);
bi.set(4);
StringBuilder s = new StringBuilder();
for( int i = 0; i < bi.length(); i++ )
{
s.append( bi.get( i ) == true ? 1: 0 );
}
System.out.println( s );
類似於@funaquarius24 答案,但使用 java 8 流:
/**
* @param bitSet bitset
* @return "01010000" binary string
*/
public static String toBinaryString(BitSet bitSet) {
if (bitSet == null) {
return null;
}
return IntStream.range(0, bitSet.length())
.mapToObj(b -> String.valueOf(bitSet.get(b) ? 1 : 0))
.collect(Collectors.joining());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.