我在使用Java中的split()
方法时发现了奇怪的行为。
我有一个字符串,如下所示:0|1|2|3|4|5|6|7|8|9|10
String currentString[] = br.readLine().split("\\|");
System.out.println("Length:"+currentString.length);
for(int i=0;i < currentString.length;i++){
System.out.println(currentString[i]);
}
这将产生所需的结果:
Length: 11
0
1
2
3
4
5
6
7
8
9
10
然而,如果我收到字符串:0|1|2|3|4|5|6|7|8||
我会得到以下结果:
Length: 8
0
1
2
3
4
5
6
7
8
最后的两个空值被省略了。我需要保留这些空值。不确定我做错了什么。我也尝试过以下方式使用split。...
split("\\|",-1);
但是那样会返回长度为1的整个字符串。非常感谢任何帮助!
for(String str:currentString){System.out.println(str);}
,这样更容易阅读,而且更难出错(例如,意外使用<=
而不是<
)。 最后,currentString
不是一个字符串,而是一个字符串数组,这有点具有误导性。 考虑将其称为“currentStringArray”或其他类似名称。 - Tyler