我正在尝试使用字符串拆分函数拆分字符串,这是一个示例:
String[] list = " Hello ".split("\\s+");
System.out.println("String length: " + list.length);
for (String s : list) {
System.out.println("----");
System.out.println(s);
}
这是输出:
String length: 2
----
----
Hello
如您所见,前导空格成为 String 数组中的空元素,但尾随空格却不是。
有谁知道为什么吗?
最佳答案
您需要使用other split method它指定限制并指定限制为 -1
String[] list = " Hello ".split("\\s+", -1);
为了保留尾随空格,- 默认行为是根据 javadoc 省略尾随空格。
<小时/>编辑(answer for comment):
要修剪前导空格,您可以在拆分字符串
之前去掉前导空格
String str = " Hello ".replaceAll("^\\s+", "");
String[] list = str.split("\\s+", -1);
关于java - Java String split() 的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18006636/