用Java实现的String的Split()方法

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)
  •   Java 字符串

    用Java实现的String的Split()方法

    字符串split()方法打破给定正则表达式匹配的给定字符串。

    例如:

    Input String: 016-78967
    Regular Expression: - 
    Output : {"016","78967"}

    以下是Java中split()方法的两种变体:

    1.公共字符串String[] split(字符串正则表达式,int限制)

    Parameters:
    regex - a delimiting regular expression
    Limit - the result threshold
    
    Returns:
    An array of strings computed by splitting the given string.
    
    Throws:
    PatternSyntaxException - if the provided regular expression’s 
                             syntax is invalid.

    限制参数可以有3个值:

     

    限制> 0:如果是这种情况,那么模式将是最多应用1次,由此产生 数组的长度不会超过n,并且结果数组的最后一项将包含所有输入超出最后匹配的模式。
    限制<0:在这种情况下,模式将被应用为尽可能多次,并由此产生数组可以是任何大小。
    限制= 0:在这种情况下,模式将应用为尽可能多次,由此产生的数组可以可以是任意大小,并且尾随的空字符串将会是被丢弃。
    

    以下是它的工作原理:

    Let the string to be splitted be : geekss@for@geekss
    
    Regex       Limit             Result
    @           2         {“geekss”, ”for@geekss”}
    @           5         {“geekss”, ”for”, ”geekss”}    
    @           -2       {“geekss”, ”for”, ”geekss”}
    s           5        {“geek”, ”“, “@for@geek”, “”, “”}
    s           -2       {“geek”, ” “, “@for@geek”, “”, “”}
    s           0        {“geek”, ””, ”@for@geek”}

    以下是演示split()工作的Java示例代码

    例1:

    // Java program to demonstrate working of split(regex,
    // limit) with small limit.
    public class GFG
    {
        public static void main(String args[])
        {
            String str = "geekss@for@geekss";
            String [] arrOfStr = str.split("@", 2);
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    geekss
    for@geekss

     

    例2:

    // 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("@", 5);
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    geekss
    for
    geekss

    例3:

    // Java program to demonstrate working of split(regex,
    // limit) with negative limit.
    public class GFG
    {
        public static void main(String args[])
        {
            String str = "geekss@for@geekss";
            String [] arrOfStr = str.split("@", -2);
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    geekss
    for
    geekss

     

    例4:

    // 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);
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    [、java]
    输出:
    <pre>geek
    
    @for@geek</pre>
    &nbsp;
    
    示例5:
    // Java program to demonstrate working of split(regex,
    // limit) with negative limit.
    public class GFG
    {
        public static void main(String args[])
        {
            String str = "geekss@for@geekss";
            String [] arrOfStr = str.split("s",-2);
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    geek
    
    @for@geek

     

    例6:

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

    输出:

    geek
    
    @for@geek

     

    2. public String [] split(String regex)

    split方法的这种变体采用正则表达式作为参数,并将该给定的字符串打破该正则表达式正则表达式的匹配。这里的默认限制是0。

    Parameters:
    regex - a delimiting regular expression
    
    
    Returns:
    An array of strings computed by splitting the given string.
    
    
    Throws:
    PatternSyntaxException - if the provided regular expression’s 
                             syntax is invalid.

    以下是一些工作示例代码:

    例1:

    // Java program to demonstrate working of split()
    public class GFG
    {
        public static void main(String args[])
        {
            String str = "GeeksforGeeks:A Computer Science Portal";
            String [] arrOfStr = str.split(":");
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    GeeksforGeeks
    A Computer Science Portal

    例2:

    // Java program to demonstrate working of split()
    public class GFG
    {
        public static void main(String args[])
        {
            String str = "GeeksforGeeksforStudents";
            String [] arrOfStr = str.split("for");
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    Geeks
    Geeks
    Students

    在上面的例子中可以看出,模式/正则表达式“for”被应用了两次(因为“for”在要分割的字符串中存在两次)

    例3:

    // Java program to demonstrate working of split()
    public class GFG
    {
        public static void main(String args[])
        {
            String str = "Geeks for Geeks";
            String [] arrOfStr = str.split(" ");
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    Geeks
    for
    Geeks

     

    例4:

    // Java program to demonstrate working of split()
    public class GFG
    {
        public static void main(String args[])
        {
            String str = "Geekssss";
            String [] arrOfStr = str.split("s");
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    Geek

    在上面的示例中,结尾数组arrOfStr中不包含尾随空字符串。

    示例5:

    // Java program to demonstrate working of split()
    public class GFG
    {
        public static void main(String args[])
        {
            String str = "GeeksforforGeeksfor   ";
            String [] arrOfStr = str.split("for");
    
            for (String a : arrOfStr)
                System.out.println(a);
        }
    }
    

    输出:

    geeks
    
    geeks

    在上面的例子中,最后的空格(因此不是空字符串)在结果数组arrOfStr中成为一个字符串。

  •   Java 字符串
  •   本文标题:用Java实现的String的Split()方法 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3993.html

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读