好的,这就是我所拥有的:
String[] data = null;
String[] data2 = null;
String[] datas = res.split("(s1)");
int i1 = 0;
int i2 = 0;
for(String datasx : datas)
{
i1++;
String[] datas2 = datasx.split("(s2)");
for(String datas2x : datas2)
{
String[] odcinek = datas2x.split("(s3)");
data[i2] = odcinek[1] + "////" + odcinek[2] + "////" + odcinek[6];
i2++;
}
}
它不起作用。应用程序崩溃在这一行:
data[i2] = odcinek[1] + "////" + odcinek[2] + "////" + odcinek[6];
实际上,Eclipse给了我以下警告:
空指针访问:变量数据在此位置只能为空
但我不知道出了什么问题。有人可以帮忙吗?感谢。
答案 0 :(得分:6)
好像你需要动态列表,所以你需要的是替换String[] data = null;
来使用List
List data = new ArrayList<String>();
String[] data2 = null;
String[] datas = res.split("(s1)");
int i1 = 0;
int i2 = 0;
for(String datasx : datas)
{
i1++;
String[] datas2 = datasx.split("(s2)");
for(String datas2x : datas2)
{
String[] odcinek = datas2x.split("(s3)");
data.add(odcinek[1] + "////" + odcinek[2] + "////" + odcinek[6]);
i2++;
}
}
答案 1 :(得分:4)
您正在将数组数据初始化为null,当您尝试访问它时,它会为您提供空指针访问错误。
在尝试访问它之前,必须将其初始化为适当的类型,即将其初始化为String []而不是null。
答案 2 :(得分:2)
您需要初始化'data'变量。此时它是空的。
请尝试以下
String[] datas2 = datasx.split("(s2)");
data = new String[datas2.length];