当前位置: 首页 > article >正文

Java中split方法简介

1.split()方法介绍

语法:

public String[] split(String regex)

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 < data.length; i++) {
            System.out.println(data[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 < data.length; i++) {
            System.out.println(data[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 < data.length; i++) {
            System.out.println(data[i]);
        }
    }
}

运行结果:

a

|

b

c

|

8

2.4 指定字符串数量限制

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

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

如果 limit < 0,匹配到多少次就分割多少次,而且数组可以是任何长度。结尾的空字符串不会丢弃。

如果 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 < data.length; i++) {
            System.out.println(data[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 < data.length; i++) {
            System.out.println(data[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 < str.length; i++) {
            System.out.println("Str[" + i + "]:" + str[i]);
        }
    }
}

运行结果:

Number of substrings: 3

Str[0]:A

Str[1]:B#

Str[2]:K$bb


http://www.kler.cn/a/107218.html

相关文章:

  • 图像处理实验二(Image Understanding and Basic Processing)
  • NoSQL数据库与关系型数据库的主要区别
  • 基于迭代重加权最小二乘法的算法及例程
  • springboot 之 整合springdoc2.6 (swagger 3)
  • 【学习】【HTML】HTML、XML、XHTML
  • 外星人入侵
  • gitlab简单搭建教程
  • yolo-nas使用教程
  • 软考系统架构师知识点集锦六:项目管理
  • 08-flex布局
  • HCIA数据通信——交换机(Vlan间的通信与安全)
  • 基于Spring AOP和CGLIB代理实现引介增强(Introduction Advice)示例
  • 外卖小程序:技术实现与关键代码
  • 使用Nginx后如何在web应用中获取用户ip及原理解释
  • Docker的架构与自制镜像的发布
  • 【pytorch】torch.gather()函数
  • CH8571 沁恒微 RISC-V EC 用芯片实验 (一)参考手册 第一章 接脚描述
  • 当线性规划与算法相遇:揭秘单纯形法(Simplex)的独特魅力
  • 最新Python深度学习技术进阶与应用
  • 【广州华锐互动】智能家居设计3D虚拟还原系统
  • FPGA时序分析与约束(7)——通过Tcl扩展SDC
  • WORD中的表格内容回车行距过大无法调整行距
  • 【STM32】STM32中断体系
  • 【期中复习】深度学习
  • Games 103 作业二
  • 10款轻量型的嵌入式GUI库分享