And*_*ock 4 python java regex split spaces
当我在python中拆分一个字符串时,相邻的空格分隔符被合并:
>>> str = "hi there"
>>> str.split()
['hi', 'there']
Run Code Online (Sandbox Code Playgroud)
在Java中,分隔符未合并:
$ cat Split.java
class Split {
public static void main(String args[]) {
String str = "hi there";
String result = "";
for (String tok : str.split(" "))
result += tok + ",";
System.out.println(result);
}
}
$ javac Split.java ; java Split
hi,,,,,,,,,,,,,,there,
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来获取Java中的python空间拆分语义?
String.split 接受正则表达式,因此为它提供一个匹配相邻空格的表达式:
str.split("\\s+")
Run Code Online (Sandbox Code Playgroud)
如果你想模仿Python的确切行为str.split(),你也需要修剪:
str.trim().split("\\s+")
Run Code Online (Sandbox Code Playgroud)
如果未指定sep或为None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾处不包含空字符串.因此,将空字符串或仅由空格组成的字符串拆分为None分隔符将返回[].
所以上面仍然不是一个确切的等价物,因为它将返回['']空字符串,但它可能适合你的目的:)