【发布时间】:2015-05-27 12:36:31
【问题描述】:
我编写了以下 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]);
}
}
}
我注意到上面的代码给了我一个输出105
这是意料之中的。
但是,如果我将str 的内容更改为" 10 5",那么我得到<br>105
作为输出。我不明白为什么输出与上面的不同。如果我使用" " 作为分隔符来拆分str,那么我认为所有" " 都会被忽略。那么我的输出中的额外空间是什么?
编辑:我尝试了" 10 5" 并得到了<br><br>105
作为输出。
【问题讨论】:
-
不是多余的空间;这是一个长度为零的字符串。
-
不,每个空格都会创建一个新字段。尝试
10 5(两个数字之间有2个空格)进行另一个实验。 -
他们不会忽略它,它只是在分隔符的每个实例上拆分字符串,无论它是否有内容。
-
因为数组的第一个元素是“”,第二个是“10”,第三个是“5”。如果分隔符位于索引 0,Split 会将 "" 作为第一个字符。