2016-10-03 82 views
-1

說我有一個數組像String[] arrayofbits = new String[256];如何用1字節的所有位組合填充數組?

我想生成256個索引的數組。從索引0開始,這將是arrayofbits[0] = "00000000"索引1 arrayofbits[1] = "00000001"等等到第255索引arrayofbits[255] = 11111111。如何生成它?

+0

你還嘗試過什麼嗎?如果是這樣,請在這裏發佈代碼並具體解釋什麼不起作用。如果沒有,請先給它一個鏡頭。 –

+4

'a [i] = i'我錯過了什麼? – dasblinkenlight

+1

@dasblinkenlight是的。您錯過了OP不知道如何編寫循環的事實。 –

回答

0

管理編碼解決方案。也許我對我的問題不太清楚,無論如何謝謝所有幫助我的人。

String[] arrayofbits = new String[256]; 
    byte bytes; 
    String s; 

    for (int i = 0; i < 256; i++) { 

    bytes = (byte) i; 

    s = (Integer.toBinaryString(0xFF & bytes)).replaceAll(".*(.{8})$", "$1"); 
    s = StringUtils.leftPad(s, 8, "0"); 
    arrayofbits[i] = s; 
    System.out.println("index " + i + " " + s + "\n"); 


    } 
+0

這實際上並沒有做你在你的問題中陳述的內容,因爲沒有數組被填充。你能否更新這個問題來更清楚你想要做什麼? – templatetypedef

+0

我的不好,我沒有複製正確的編輯,現在更新了。 – aval

4

試試這個:

for(int i = 0; i<256; i++) { 
    arrayofbits[i] = i; //because everything is binary! 
} 
1

您可以使用:

String asString = Integer.toBinaryString(32); 

一個字節轉換爲二進制字符串。即,32變成100000

然後,如果您希望將字符串"111"轉換爲十進制值111你可以使用:

int asDecimal = Integer.valueOf("111"); 

返回111(一一一)。

但是,我認爲你只關心第一部分(轉換"111"111對我沒有多大意義)。