爲什麼拆分方法不返回包含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