>> str.split() ['hi', 'there'] -6ren">
gpt4 book ai didi

java - Java 中的 Python 拆分语义

转载 作者:太空狗 更新时间:2023-10-30 02:05:41 25 4
gpt4 key购买 nike

当我在 python 中分割一个字符串时,相邻的空格分隔符被合并:

>>> str = "hi              there"
>>> str.split()
['hi', 'there']

在 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,

有没有一种直接的方法可以在 java 中获得 python 空间分割语义?

最佳答案

String.split 接受一个正则表达式,因此为它提供一个匹配相邻空格的正则表达式:

str.split("\\s+")

如果您想模拟 Python 的 str.split() 的确切行为,您还需要进行修剪:

str.trim().split("\\s+")

引自Python docs on str.split() :

If sep is not specified or is None, a different splitting algorithm is applied: runs of consecutive whitespace are regarded as a single separator, and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace. Consequently, splitting an empty string or a string consisting of just whitespace with a None separator returns [].

所以上面仍然不是完全等价的,因为它会为空字符串返回 [''],但它可能适合您的目的:)

关于java - Java 中的 Python 拆分语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com