为什么拆分方法不返回包含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]));
}
如果我取消注释其中任一行,我会得到ArrayOutofBoundsException: 1
。 println总是返回True,字符串的长度,然后返回一个位于字符串中的字符串 - 不在结尾处的为_
。
我试过负参数.split()
,转换字符串字符数组,打破使用indexOf()
找到_
位置,然后用手动substring()
分裂它的字符串。字符串本身可能有问题,但这里是字符串数组的代码:ArrayList<String> temparray = new ArrayList<String>();
。
temparray.get(i)中存储的确切字符串值是什么? – 2012-03-13 14:40:59
你使用什么字符串代码?向我们展示一些示例,以便帮助您找到解决方案。 – pcalcao 2012-03-13 14:41:17
正如其他人提到它:你可能忘记了一些括号。但是请注意,不包含尾随的空字符串,因此字符串“foo_”也将只返回一个元素,即使它包含分隔符(请参阅:http://docs.oracle.com/javase/1.4.2/文档/ API /爪哇/郎/ String.html#分裂%28java.lang.String%29) – 2012-03-13 14:44:43