gpt4 book ai didi

java - 在 Java 中使用非空白字符时,split 方法如何工作?

转载 作者:行者123 更新时间:2023-11-30 06:50:55 25 4
gpt4 key购买 nike

我不明白 String 类中的 split() 方法在使用 regex(非空白字符)时如何工作。我在互联网上找到了一些部分答案,但我仍然不明白。这是我的代码:

public class Test {
public static void main(String[] args) {
String myX = "x xx ";
String[] x = myX.split("\\S");

for (String s : x){
System.out.print("\"" + s + "\", ");
}
System.out.println(x.length);
}
}

我的逻辑是这样的:

第一个 'x' 是非空白吗?是的,所以在数组中我们应该有 ""
' ' 是非空格吗?不,所以在数组中我们应该有 ""
第二个 'x' 是非空白吗?是的,所以在数组中我们应该有 ""
第三个 'x' 是非空白吗?是的,所以在数组中我们应该有 ""
最后一个 ' ' 是非空白吗?不,所以在数组中我们应该有 ""

在我看来数组应该是这样的:["", "", "", "", ""]

为什么数组看起来像 ["", "", "", ""] 并且长度是 4 而不是 5?位于中间的是 2x,不是像数组中那样只有一个出现。

谢谢!

最佳答案

这是解释 split() 方法如何应用定界符的直观方式:

^x xx $
[ "" | " " | "" | " " ]
^ nothing ^ space ^ nothing ^ space ^
start 1st x 2nd x 3rd x end of string

这会产生您观察到的数组输出:

["", " ", "", " "]

关于java - 在 Java 中使用非空白字符时,split 方法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40785451/

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