关于Java String API中的split()方法

时间:2015-03-24 09:05:54

标签: java string

我编写了以下Java代码,用于测试String API中的split()方法。

import java.util.Scanner;

public class TestSplit {
    public static void main(String[] args) {
        String str = "10 5";
        String[] integers = str.split(" ");
        int numOfInt = integers.length;

        for (int i = 0; i < numOfInt; i++) {
           System.out.println(integers[i]);
        }
     }
}

我注意到上面的代码给了我一个输出 10
5
这是预料之中的 但是,如果我将str的内容更改为" 10 5",那么我会得到
10
5
作为输出。我不明白为什么输出与上面的输出不同。如果我使用str作为分隔符来分割" ",那么我认为所有" "都将被忽略。那么我输出中的额外空间是多少?

编辑:我试过" 10 5"并得到了

10
5
作为输出。

1 个答案:

答案 0 :(得分:6)

如果你有一个分隔符作为第一个字符,split将返回一个空字符串作为输出数组的第一个元素(即" 10 5".split(" ")返回数组{"","10","5"})。

同样,如果你有两个连续的分隔符,split将产生一个空字符串。因此"10 5".split(" ")将生成数组{"10","","5"}

如果您希望忽略前导和尾随空格,请将str.split(" ");更改为str.trim().split(" ");