8

好的,这就是我所拥有的:

        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 给了我以下警告:

空指针访问:变量数据在该位置只能为空

但我不知道出了什么问题。有人可以帮忙吗?谢谢。

4

3 回答 3

7

好像您需要动态列表,所以您需要替换String[] data = null;以使用列表

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++;
    }
}
于 2012-04-22T13:52:05.243 回答
5

您正在将数组数据初始化为空,当您尝试访问它时,它会给您空指针访问错误。

在尝试访问它之前,您必须将其初始化为适当的类型,即将它初始化为 String[] 而不是 null。

于 2012-04-22T13:54:33.483 回答
2

您需要初始化“数据”变量。此时为空。

请尝试以下

String[] datas2 = datasx.split("(s2)");
data = new String[datas2.length];
于 2012-04-22T13:52:14.340 回答