阵列长度自我减少

时间:2015-05-07 17:18:05

标签: java android

我有以下代码

    Log.i("fulldatestr", fullDateString);
    String[] parts = fullDateString.split("-");
    for(String str : parts)
    {
        Log.i("count", Integer.toString(parts.length));
        Log.i("str", str);
    }
    Log.i("0 is ", parts[0]);
    dayNumOfMonth = parts[2]; // ERROR LINE

导致错误ArrayOutOfBoundsException。不知何故,长度从31。这是日志输出。

05-07 19:15:29.273: I/fulldatestr(30925): 2015-04-01
05-07 19:15:29.273: I/count(30925): 3
05-07 19:15:29.273: I/str(30925): 2015
05-07 19:15:29.273: I/count(30925): 3
05-07 19:15:29.273: I/str(30925): 04
05-07 19:15:29.273: I/count(30925): 3
05-07 19:15:29.273: I/str(30925): 01
05-07 19:15:29.273: I/0 is(30925): 2015
05-07 19:15:29.283: I/count(30925): 1
05-07 19:15:29.283: W/System.err(30925): java.lang.ArrayIndexOutOfBoundsException: length=1; index=2

你可以看到它分裂很好,解析很好,然后繁荣长度是1.帮助我。注意:此代码之前工作正常。

2 个答案:

答案 0 :(得分:1)

您的代码段工作正常。

您的日志输出与代码的程序流程不兼容:这意味着您可能遇到了一些与并发相关的问题(例如,如果您的某些变量被声明为字段,则会发生这种情况)。另请查看执行时间:在崩溃之前,您从 19:15:29.273 移至 19:15:29.283

答案 1 :(得分:1)

找到解决方案。将Log更改为System.Out.println,我看到“日志”不会打印空字符串,问题出在另一个fullDateString中,这是从网络上严重解析的。谢谢大家的帮助。