我编写了以下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
答案 0 :(得分:6)
如果你有一个分隔符作为第一个字符,split
将返回一个空字符串作为输出数组的第一个元素(即" 10 5".split(" ")
返回数组{"","10","5"}
)。
同样,如果你有两个连续的分隔符,split
将产生一个空字符串。因此"10 5".split(" ")
将生成数组{"10","","5"}
。
如果您希望忽略前导和尾随空格,请将str.split(" ");
更改为str.trim().split(" ");
。