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

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

用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);
    }
}

输出:

geek

@for@geek

 

示例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实现的String的Split()方法 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3993.html
    扫描二维码添加微信 
  • ,领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘优惠券!添加微信后,分享淘宝选中的机械键盘给淘宝机器人即可领取!
    支持我们,就用微信淘宝!

    发表笔记

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

    更多阅读