为什么split方法不返回包含2个元素的数组?
for(int i = 0; i < temparray.size(); i++)
{
if (temparray.get(i).contains("_"))
System.out.println("True" + temparray.get(i).length() + " " + temparray.get(i));
String[] temp = temparray.get(i).split("_");
System.out.println(temp[0]);
//System.out.println(temp[1]);
//friendsOld.add(new Friend(temp[0],temp[1]));
}
Run Code Online (Sandbox Code Playgroud)
如果我取消注释任何一行,我得到ArrayOutofBoundsException: 1.println总是返回True,String的长度,然后返回一个_位于String内的String - 不在最后.
我已经尝试了负参数.split(),将String转换为char数组并使用String来打破String indexOf(),_然后使用它来手动分割它substring().String本身可能有问题,但这里是字符串数组的代码:ArrayList<String> temparray = new ArrayList<String>();.
看来你忘了if语句之后的大括号:
if (temparray.get(i).contains("_")) {
System.out.println("True" + temparray.get(i).length() + " " + temparray.get(i));
String[] temp = temparray.get(i).split("_");
System.out.println(temp[0]);
System.out.println(temp[1]);
friendsOld.add(new Friend(temp[0],temp[1]));
}
Run Code Online (Sandbox Code Playgroud)
你编写它的方式,即使它不包含下划线,字符串也会被拆分.只有"True [...]"的输出仅限于包含一个的字符串.
您应该开始使用调试器 - 它会在命中异常断点时显示变量的值,以便您进一步跟踪代码中的错误.
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |