gpt4 book ai didi

java - 字符串类拆分函数返回不明确的结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:22 28 4
gpt4 key购买 nike

下面是2个代码

System.out.println(",,,,,".split(",").length);

System.out.println(",,,,, ".split(",").length);

对于第一个代码,它打印的结果是 0,对于第二个代码,它打印的结果是 6。

我的问题是为什么当我没有在末尾添加额外空间时拆分无法识别 "," 但当我在末尾添加额外空间时它能够识别它。

请注意,我也用正则表达式 "\\s*,\\s" 尝试过,但结果是一样的。

最佳答案

我没有这方面的文档引用,但根据经验,我在测试 String#split 时看到的是,如果没有实际的文本匹配,那么零宽度匹配也是不在数组中返回。所以下面返回一个空数组:

",,,,,".split(",")

但是,如果您在逗号系列的末尾添加一个空格,然后进行相同的拆分,则只有一个匹配空格。结果,数组返回所有匹配项,包括零宽度匹配项:

",,,,, ".split(",")

但是,因为逗号之间没有内容,我会将您的真正要求解释为想要将每个单独的逗号拆分成一个单独的结果。如果是这样,那么您可以使用环视进行拆分,如下所示:

String input = ",,,,,";
String[] parts = input.split("(?<=,)(?=,)");
for (String part : parts) {
System.out.println(part);
}

这个输出:

,
,
,
,
,

Demo

关于java - 字符串类拆分函数返回不明确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51834930/

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