Java中的split使用方法详解

 更新时间:2023年10月07日 10:56:41   作者:cloneme01  
这篇文章主要介绍了Java中的split使用方法详解,Java 中 String 的 split 方法可以将字符串根据指定的间隔进行切割,经过切割后得到的返回值是一个字符串数组,需要的朋友可以参考下

前言

在工作中一直使用split进行字串的分隔,但是始终没有认真研究过该方法,今天在使用该方法时遇到了一些问题,特进行学习记录。

遇到的问题

在使用“|”作为字串的分隔符的时候,分隔结果和预期不一样。

方法定义

// 从方法的实现上, 可以了解split的参数可以是正则表达式、任意字符、符号、数字、字符串等。

public String[] split(String regex) {
}

重点关注

因为split方法也支持正则表达式,而正则表达式存在特殊字符串的情况,这样就出现了上述问题,所以需要注意下表中的特殊字符。

特殊字符

特殊字符说明
$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 \$。
( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 和和。
*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
.匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \.。
[标记一个中括号表达式的开始。要匹配 [,请使用 \[。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
\将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。‘\n’ 匹配换行符。序列 ‘\\’ 匹配 ‘\’,而 ‘\(’ 则匹配 ‘(’。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
{标记限定符表达式的开始。要匹配 {,请使用 \{。
|指明两项之间的一个选择。要匹配 |,请使用 \|。

示例代码

// 1.如何使用|进行分隔?
String[] a = "a|b|c".split("\\|"); // 执行结果: [a, b, c]
// 2.如何使用.进行分隔?
String[] b = "a.b.c".split("\\."); // 执行结果: [a, b, c]
// 3.如何使用正则表达式进行分隔?
// 正则表达式:\d+表示一个或多个数字
String[] c = "a11b222c3333d".split("\\d+"); // 执行结果: [a, b, c, d]
// 4.如何使用多个不同的分隔符进行分隔?
// 分隔符可以有多个字符, 它们使用|分隔成左右两部分, 左右两边表达式之间是"或"的关系, 匹配左边或者右边.
String[] d = "a,b#c@d%%e".split(",|#|@|%%"); // 执行结果: [a, b, c, d, e]

高级进阶

limit默认是0,regex表示正则表达式,limit用来参数控制分隔的次数。

public String[] split(String regex, int limit) {
}
String[] e = "a@b@c@d@e@".split("@", -1);  // 执行结果: [a, b, c, d, e, ]
String[] f = "a@b@c@d@e@".split("@", 0);   // 执行结果: [a, b, c, d, e]
String[] g = "a@b@c@d@e@".split("@", 1);   // 执行结果: [a@b@c@d@e@]
String[] h = "a@b@c@d@e@".split("@", 2);   // 执行结果: [a, b@c@d@e@]
String[] i = "a@b@c@d@e@".split("@", 100); // 执行结果: [a, b, c, d, e, ]
String[] j = "@@@".split("@", 100); // 执行结果: [, , , ]
String[] k = "bo:and:fo".split("o", 100); // 执行结果: [b, :and:f, ]
String[] l = "boo:and:foo".split("o", 100); // 执行结果: [b, , :and:f, , ]
String[] m = "booo:and:fooo".split("o", 0); // 执行结果: [b, , , :and:f]

1. 字符串开头出现分隔符,其余部分正常分隔,开头会分隔出一个空字符串。

2. 分隔符紧挨着,其余部分正常分隔,分隔符之间也会分隔出一个空字符串。

3. 字符串末尾出现分隔符,其余部分正常分隔,末尾会分隔出一个空字符串,是否丢弃末尾的空格需要判断limit的值:

  • 如果 limit < 0,匹配到多少次,就分隔多少次,数组可以是任何长度,结尾的空字符串不会丢弃;
  • 如果 limit = 0,匹配到多少次,就分隔多少次,数组可以是任何长度,并且结尾空字符串将被丢弃;
  • 如果 limit = 1,不进行分隔,直接将字串变成长度为1的数组;
  • 如果 limit > 1,(从左到右)最多分隔 n - 1 次,数组的长度将不会大于n, 结尾的空字符串不会丢弃。

到此这篇关于Java中的split使用方法详解的文章就介绍到这了,更多相关split使用方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Predicate及Consumer接口函数代码实现解析

    Java Predicate及Consumer接口函数代码实现解析

    这篇文章主要介绍了Java Predicate及Consumer接口函数代码实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Spring Boot jpa Service层代码实例

    Spring Boot jpa Service层代码实例

    这篇文章主要介绍了Spring Boot jpa Service层代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java实现雪花算法的原理

    Java实现雪花算法的原理

    这篇文章主要介绍了Java实现雪花算法的原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Spring装配Bean教程之XML安装配置bean详解

    Spring装配Bean教程之XML安装配置bean详解

    大家都知道spring有多重配置方式,基于XML,基于注解,基于java类的配置,其中基于XML是最强大的一种,下面这篇文章主要给大家介绍了关于Spring装配Bean之XML安装配置bean的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • logback的ShutdownHook关闭原理解析

    logback的ShutdownHook关闭原理解析

    这篇文章主要为大家介绍了logback的ShutdownHook关闭原理源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 基于swagger测试List类型参数过程详解

    基于swagger测试List类型参数过程详解

    这篇文章主要介绍了基于swagger测试List类型参数过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • java开发微信分享接口的步骤

    java开发微信分享接口的步骤

    这篇文章主要为大家详细介绍了java开发微信分享接口的步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • IDEA入门级使用教程你居然还在用eclipse?

    IDEA入门级使用教程你居然还在用eclipse?

    上个月,idea的使用量超越eclipse的消息席卷了整个IT界,idea到底好在哪里呢?下面小编通过本文给大家详细介绍下IDEA入门级使用教程,非常详细,感兴趣的朋友一起看看吧
    2020-10-10
  • SpringCloud Gateway动态转发后端服务实现过程讲解

    SpringCloud Gateway动态转发后端服务实现过程讲解

    这篇文章主要介绍了SpringCloud Gateway动态转发后端服务实现过程,简单的路由转发可以通过SpringCloudGateway的配置文件实现,在一些业务场景种,会需要动态替换路由配置中的后端服务地址,单纯靠配置文件无法满足这种需求
    2023-03-03
  • SpringBoot Feign使用教程超全面讲解

    SpringBoot Feign使用教程超全面讲解

    现在的微服务项目不少都使用的是springboot+Feign构建的项目,微服务之间的调用都离不开feign来进行远程调用,这篇文章主要介绍了SpringBoot Feign使用教程,需要的朋友可以参考下
    2022-11-11

最新评论