【发布时间】:2010-08-03 09:23:58
【问题描述】:
我是个正则表达式的菜鸟,我需要拆分字符串的帮助。我正在输入以下数据
665 11% R 1 908K 388K fg root top
61 1% S 42 152404K 29716K fg system system_server
38 0% S 1 840K 340K fg root /system/bin/qemud
114 0% S 16 120160K 19156K fg radio com.android.phone
这不过是您的常规顶级输出。我打算做的是选择像
这样的条目655 11% R 1 fg root top
现在我用来执行以下操作的代码是
while ((inputLine = in.readLine()) != null)
{
String[] segs= inputLine.split("[ ]+");
str[i] = segs[0]+" "+segs[1]+" "+segs[2]+" "+
segs[3]+" "+segs[6]+" "+segs[7]+" "+segs[8];
Log.v("TOP Output", str[i]);
i++; j++;
}
但我面临的问题是,我上 logcat 是
java.lang.ArrayIndexOutOfBoundsException
我哪里出错了,我可以做些什么来防止这种情况发生。感谢您的帮助。
编辑:阅读 cmets 后,我意识到我的输出中有几行空行。因此,在这种情况下,我应该如何忽略这些行。我知道我应该匹配一个案例,但我不确定表达式或语法!
【问题讨论】:
-
首先,检查
segs数组的内容。它分为多少个元素? -
您可能正在读取文件末尾的空行。
-
其实我读的是一个空行,但是那样的话真的重要吗?
-
它不是从零开始初始化,还是我应该从1开始!?