Java中split方法简介

2024-04-08 1949阅读

1.split()方法介绍

语法:

public String[] split(String regex)

Java中split方法简介
(图片来源网络,侵删)

public String[] split(String regex, int limit)

功能:

通过指定的分隔符将字符串分割成若干个子字符串,子字符串数组通过返回值返回。

参数:

regex : 应用于字符串的正则表达式。

limit :数组中字符串的数量限制。如果它为零,它将返回所有匹配正则表达式的字符串。

返回值:

字符串数组

例外: PatternSyntaxException 如果正则表达式的模式无效

2.代码案例

2.1 单个分隔符

字符串中仅包含单个分隔符,通过单个分隔符将字符串分割成若干个子字符串。

public class Test {
    public static void main(String[] args) {
        String str = "2018,text,今天";
        // 单个分隔符用引号括起来即可
        String[] data = str.split(",");
        for (int i = 0; i  
   

运行结果:

2018

text

今天

2.2 如果分隔符本身就是"|",那么就需要使用转义字符"\"让其产生效果。

字符串中包含"|"分隔符,需要通过"|"分隔符将字符串分割成若干个子字符串。

public class Test {
    public static void main(String[] args) {
        String str = "a|bc|8";
        // java中\\表示一个普通\,\|特殊字符表示字符本身
        String[] data = str.split("\\|");
        for (int i = 0; i  
   

运行结果:

a

bc

8

2.3 字符串拆分为字符数组

将字符串分隔成单个字符数组。

方式1.用"|"

方式2.用"(?!^)"

如下所示:

public class Test {
    public static void main(String[] args) {
        String str = "a|bc|8";
        
        // 方式1.java中\\表示一个普通\,\|特殊字符表示字符本身
        String[] data = str.split("|");
        
        // 方式2.用"(?!^)"也能表示字符本身
        // String[] data = str.split("(?!^)");
        
        for (int i = 0; i  
   

运行结果:

a

|

b

c

|

8

2.4 指定字符串数量限制

字符串分割成若干个子字符串,限制子字符串的个数。

如果 limit > 0,(从左到右)最多分割 n - 1 次,数组的长度将不会大于 n,结尾的空字符串不会丢弃。

如果 limit

如果 limit = 0,匹配到多少次就分割多少次,数组可以是任何长度,并且结尾空字符串将被丢弃。

将limit 设置为 0:这将排除尾随的空字符串。

将limit 指定为 1,因此 split 方法仅返回1个子字符串。

将limit 指定为 2,因此 split 方法仅返回2个子字符串。

当limit 为负数时,它会在输出中包含尾随的空字符串。

public class Test {
    public static void main(String[] args) {
        String s1 = "hello/hi/bye///";
        for (String w : s1.split("/", 0)) { // 将limit 设置为 0:这将排除尾随的空字符串。
            System.out.println("returning words1:" + w);
        }
        System.out.println("------------------");
        for (String w : s1.split("/", 1)) { // 将limit 指定为 1,因此 split 方法仅返回1个子字符串。
            System.out.println("returning words2:" + w);
        }
        System.out.println("------------------");
        for (String w : s1.split("/", 2)) { // 将limit 指定为 2,因此 split 方法仅返回2个子字符串。
            System.out.println("returning words3:" + w);
        }
        System.out.println("------------------");
        int i = 1;
        for (String w : s1.split("/", -1)) { // 当limit 为负数时,它会在输出中包含尾随的空字符串。
            System.out.print(i++ + ". ");
            System.out.println(w);
        }
    }
}

运行结果:

returning words1:hello

returning words1:hi

returning words1:bye

------------------

returning words2:hello/hi/bye///

------------------

returning words3:hello

returning words3:hi/bye///

------------------

1. hello

2. hi

3. bye

4.

5.

6.

2.5 正则表达式表示分隔符

字符串中包含分隔符,通过正则表达式的形式确定分隔符,并通过分隔符将字符串分割成若干个子字符串。

在正则表达式中"\d+"表示一个或多个数字,是用于从一堆数字字母以及其它字符组成的字符串中获取非数字字符或字符串。

public class Test {
    public static void main(String[] args) {
        String str = "2018年11月18日abcd85gg688";
        //正则表达式中\d+表示一个或多个数字,java中\\表示一个普通\
        String[] data = str.split("\\d+");
        for (int i = 0; i  
   

运行结果:

日abcd

gg

2.6 空格

字符串中包含空格分隔符,需要通过空格分隔符将字符串分割成若干个子字符串。

返回字符串中的所有单词,仅不包括空格。

public class Test {
    public static void main(String[] args) {
        String s1 = "java string split method";
        // String[] words = s1.split("\\s");
        String[] words = s1.split(" ");//两种方法都可以,根据空格拆分字符串
        for (String w : words) {
            System.out.println(w);
        }
    }
}

运行结果:

java

string

split

method

2.7 多个分隔符

字符串中包含多种分隔符,需要通过多种分隔符将字符串分割成若干个子字符串。

方式1.多个分隔符用引号括起来

方式2.多个分隔符用引号和中括号括起来

public class Test {
    public static void main(String[] args) {
        String str = "2021年11月18日;英语,数学,语文;";
        // 方式1.多个分隔符用引号括起来,并且用“|”进行分割
        // String[] data = str.split(",|;");
        // 方式2.多个分隔符用引号和中括号括起来
        String[] data = str.split("[,;]");
        for (int i = 0; i  
   

运行结果:

2021年11月18日

英语

数学

语文

2.8 大写字母拆分字符串

字符串中包含大写字母,需要通过将大写字母作为分隔符,将字符串分割成若干个子字符串。

public class Test {
    public static void main(String[] args) {
        String s = "AB#K$bb";
        String[] str = s.split("(?=\\p{Lu})");
        System.out.println("Number of substrings: " + str.length);
        for (int i = 0; i  
   

运行结果:

Number of substrings: 3

Str[0]:A

Str[1]:B#

Str[2]:K$bb

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]