2011-12-18 218 views
0

我需要一個base64值轉換爲字符串數組如此簡單,我有寫:Base64編碼解碼卡住

String s[] = new String[partyname.length]; 
     for(int i=0;i<=partyname.length;i++) 
     { 
     byte[] bytes = Base64.decode(partyname[i], Base64.DEFAULT); 
       String string = new String(bytes, "UTF-8"); 
       s[i] = string; 
       System.out.println("string is ::" + string+s[i]); 


     } 

,但我不知道爲什麼它在s[i] = string;線提高空指針錯誤,如果我刪除它,然後工作正常所以請幫助我。

+1

s爲null – Jimmy 2011-12-18 14:39:10

+1

既然你有2.8K代表,我認爲這裏的解決辦法是多休息(從第一行?)。 – Jake 2011-12-18 14:41:13

+0

你也在終止在partyname.length循環 - 所以解除引用paryname [i]將失敗在最後一次迭代 – Jimmy 2011-12-18 14:42:23

回答

1

您需要先創建String數組,且s引用。你有

String[] s = null; 

所以,當您嘗試使用s如

s[i] = string; 

再就是小號依然爲空,並試圖讓小號給你空指針。

從我想你想用相同數量的元素作爲黨的名稱的String數組的代碼的其餘部分,所以你需要

String[] s = new String[partyname.length]; 
+0

你碰到的確切問題+1 – 2011-12-18 15:11:14

6

因爲s爲空。

你可能想這是第一行:

String[] s = new String[partyname.length]; 
+0

@ Dr.nik:你已經刪除了什麼? – 2011-12-18 15:08:25

+0

+1對你有幫助 – 2011-12-18 15:11:58

1

至於說,s爲null,我想補充的另一個考慮:
for循環應該是:的for(int i=0;i<partyname.length;i++)代替for(int i=0;i<=partyname.length;i++)

+1

好的接收。在回答原始問題時錯過了。 – 2011-12-18 15:14:33

+0

謝謝,這不是要解決的問題,但它將是下一個。 – 2011-12-18 15:51:50