2012-09-01 29 views
2

我正在處理的情況是,在我必須讀取的輸入中是一個位流。所以輸入可以是以下形式。第一行告訴我將要接收的位數,然後下一行是一個位流。作爲一個位流的過程輸入

10 
011011110 

現在我正在嘗試的是如果它有可能處理我接收到的輸入。我知道http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html類有一個方法nextByte(),它將輸入的下一個標記處理爲一個字節。我想知道是否有可能將輸入作爲一個位數組來處理。

+1

所以輸入實際上是一個字符流,可能的值爲'0','1'和'\ n'? –

+0

@AlexeiKaigorodov是的,它是一個字符流,但它被解釋爲位 – user1420750

回答

1

在Java 7,你有一個類BitSet可以這樣使用:

public static BitSet fromByte(byte b) 
{ 
    BitSet bits = new BitSet(8); 
    for (int i = 0; i < 8; i++) 
    { 
     bits.set(i, (b & 1) == 1); 
     b >>= 1; 
    } 
    return bits; 
} 

你就一定得從流byte,然後簡單地就可以調用fromByte方法。

相關問題