Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java String split() 使用方法及示例

Java String(字符串) 方法

Java String split()方法在指定的正则表达式处分割字符串,并返回子字符串数组。

字符串split()方法的语法为:

string.split(String regex, int limit)

split()参数

字符串split()方法可以采用两个参数:

  • regex - 字符串在此正则表达式处分割(可以是字符串)

  • limit (可选)-指定生成的子字符串的数量

如果未传递参数limit,则split()返回所有可能的子字符串。

split()返回值

  • 返回子字符串数组。

注意:如果传递给的正则表达式split()无效,则split()方法抛出PatternSyntaxExpression异常。

示例1:split() 无limit参数实例

//导入数组以将数组转换为字符串
//用于打印数组
import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        String vowels = "a::b::c::d:e";

        //在“ ::”处分割字符串
        //将结果存储在字符串数组中
        String[] result = vowels.split("::");

        //将数组转换为字符串并打印
        System.out.println("result = " + Arrays.toString(result));
    }
}

输出结果

result = [a, b, c, d:e]

在这里,我们在 :: 处分割字符串。由于未传递参数limit,因此返回的数组包含所有子字符串。

带limit参数的split()

  • 如果limit参数为 0 或 负数,则split()返回包含所有子字符串的数组。

  • 如果limit参数为正(例如n),则split()返回子字符串的最大值n。

示例2:带limit参数的split()

//导入数组,将数组转换为字符串
import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        String vowels = "a:bc:de:fg:h";

        // 在":"处分割字符串

        // limit = -2; 数组包含所有子字符串
        String[] result = vowels.split(":", -2);
        System.out.println("返回结果当limit为 -2 = " + Arrays.toString(result));

        // limit = 0; 数组包含所有子字符串
        result = vowels.split(":", 0);
        System.out.println("返回结果当limit为 0 = " + Arrays.toString(result));

        // limit = 2; 数组最多包含2个子字符串
        result = vowels.split(":", 2);
        System.out.println("返回结果当limit为 2 = " + Arrays.toString(result));

        // limit = 4;数组最多包含4个子字符串
        result = vowels.split(":", 4);
        System.out.println("返回结果当limit为 4 = " + Arrays.toString(result));

        // limit = 10; 数组最多包含10个子字符串
        result = vowels.split(":", 10);
        System.out.println("返回结果当limit为 10 = " + Arrays.toString(result));
    }
}

输出结果

返回结果当limit为 -2 = [a, bc, de, fg, h]
返回结果当limit为 0 = [a, bc, de, fg, h]
返回结果当limit为 2 = [a, bc:de:fg:h]
返回结果当limit为 4 = [a, bc, de, fg:h]
返回结果当limit为 10 = [a, bc, de, fg, h]

注意:split()方法将正则表达式作为第一个参数。如果需要使用特殊字符,如 \、|、^、*、+ 等,则需要对这些字符进行转义。例如,我们需要使用\\+ 来分割 +。

示例3:split() 拆分字符串在+字符处

//导入数组以将数组转换为字符串
//用于打印数组
import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        String vowels = "a+e+f";

        //分割字符串在 "+" 处
        String[] result = vowels.split("\\+");

        //将数组转换为字符串并打印
        System.out.println("result = " + Arrays.toString(result));
    }
}

输出结果

result = [a, e, f]

在这里,要在+处分割字符串,我们使用了\\+。 这是因为+是一个特殊字符(在正则表达式中具有特殊含义)。

Java String(字符串) 方法