我的问题是为什么要使用以下程序:

// Java program to demonstrate working of split(regex,
// limit) with high limit.
public class GFG
{
    public static void main(String args[])
    {
        String str = "geekss@for@geekss";
        String [] arrOfStr = str.split("s", 5);
    }
}

将字符串"geekss@for@geekss"分为5个子字符串:{"geek", "", "@for@geek", "", ""}。根据我的看法,应该有4个子字符串:{"geek", "","@for@geek", ""}。有人可以澄清我的疑问吗?

最佳答案

如果您仔细看一下文档:



因此,您得到的数组包含两件事:

  • 字符串的子字符串,后跟s(斜体)
  • 字符串末尾剩余的内容(粗体部分)

  • 前四个元素之所以获得{"geek", "", "@for@geek", ""}的原因是,它们后面跟着s。您得到的最后一个""是匹配每个s后剩下的内容。

    请注意,您传递的limit5参数也是相关的。根据文档:



    因此,最后匹配的定界符是最后的s。之后,仍然有一个空字符串尚未检查。

    关于java - split()方法如何在Java中工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46630316/

    10-12 05:08