我有以下代码
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
。不知何故,长度从3
到1
。这是日志输出。
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.帮助我。注意:此代码之前工作正常。
答案 0 :(得分:1)
您的代码段工作正常。
您的日志输出与代码的程序流程不兼容:这意味着您可能遇到了一些与并发相关的问题(例如,如果您的某些变量被声明为字段,则会发生这种情况)。另请查看执行时间:在崩溃之前,您从 19:15:29.273 移至 19:15:29.283 。
答案 1 :(得分:1)
找到解决方案。将Log
更改为System.Out.println
,我看到“日志”不会打印空字符串,问题出在另一个fullDateString
中,这是从网络上严重解析的。谢谢大家的帮助。