我需要将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;
行引发空指针错误,如果我删除它然后工作正常所以请帮助我。
答案 0 :(得分:6)
因为s
为空。
您可能希望将此作为第一行:
String[] s = new String[partyname.length];
答案 1 :(得分:1)
您需要先创建引用的String数组。
String[] s = null;
所以当你尝试使用诸如
之类的s[i] = string;
然后 s 仍然为空,并且尝试获取 s 的 i 元素会给你空指针。
从剩下的代码中我想你想要一个与派对名称具有相同元素数量的String数组,所以你需要
String[] s = new String[partyname.length];
答案 2 :(得分:1)
如上所述,s为空,我想补充另一个考虑因素:
for循环应该是:for(int i=0;i<partyname.length;i++)
而不是for(int i=0;i<=partyname.length;i++)