gpt4 book ai didi

java - 为什么 String.split 会有这样的行为?

转载 作者:太空宇宙 更新时间:2023-11-04 06:43:30 27 4
gpt4 key购买 nike

我的代码是

public class Main
{

public static void main(String[] args)
{

String inputString = "#..#...##";

String[] abc = inputString.trim().split("#+");

for (int i = 0; i < abc.length; i++)
{
System.out.println(abc[i]);
}

System.out.println(abc.length);

}
}

输出 abc 是一个长度为 3 的数组。abc[0] 是一个空字符串。 abc 中的另外两个元素是 .. 和 ...

如果我的输入字符串是“..##...”。我在 split 函数返回的数组中没有得到空字符串。在这两种情况下,输入字符串都没有尾随空格。

有人可以解释一下为什么上面显示的代码中会出现额外的空格吗?

最佳答案

您不会得到额外的空格,而是得到空字符串(长度为 0)。 javadoc 中是这样说的:

 * <p> When there is a positive-width match at the beginning of this
* string then an empty leading substring is included at the beginning
* of the resulting array. A zero-width match at the beginning however
* never produces such empty leading substring

关于java - 为什么 String.split 会有这样的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24364139/

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