2011-12-18 230 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