str.split(" \\ s +")不按预期工作

时间:2014-04-22 08:54:17

标签: java arrays string

我正在阅读像2222 1555 777

这样的一行

有:

String[] splitDist = line.split("\\s+");
for (int i = 0; i< splitDist.length; i++){
     System.out.println(i);
}

i永远不会改变。有什么理由为什么?想法?

我期待像["2222","1555","777"]

这样的数组

但它是一个字符串["22221555777"],因此i将为0

编辑:不确定为什么会发生这种情况...谢谢大家的尝试,这里有些不对劲。这一件事只是给了奇怪的行为......

2 个答案:

答案 0 :(得分:1)

String[] splitDist = line.split("\\s+");
for (int i = 0; i< splitDist.length; i++){
    System.out.println(splitDist[i]);
}

您需要打印数组元素而不是i

答案 1 :(得分:0)

请试试这个

public static void main(String args[]){

 String[] arr = new String[3] ;
 String line = "2222 1555 777";
 String[] splitDist = line.split("\\s+");
 for (int i = 0; i< splitDist.length; i++){
    arr[i] = splitDist[i];
 }
 System.out.println("arr"+Arrays.deepToString(arr));
}

输出:

arr[2222, 1555, 777]

它正在发挥作用。