JAVA中split函数的常见用法实例

 更新时间:2022年07月18日 16:15:44   作者:专打瘸子那条好腿  
Java中我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面这篇文章主要给大家介绍了关于JAVA中split函数的常见用法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

只写经常使用的,并不完整。

1.基本用法,将字符串按照指定字符串进行分割,例如:

public class Main {
    public static void main(String[] args) {
        String ss = "abcabcdefg";
        String[] split = ss.split("bc");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串数组长度为");
        System.out.println(split.length);
    }
}

输出:

a
a
defg
分隔后字符串数组长度为
3

2.需要使用多个字符进行分割:使用split("[]"),其中[]里面存放需要分割的字符,注意,现在是按照字符来分割,例如:

public class Main {
    public static void main(String[] args) {
        String ss = "abcabcdefg";
        String[] split = ss.split("[bc]");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串数组长度为");
        System.out.println(split.length);
    }
}

输出:

a

a

defg
分隔后字符串数组长度为
5

原因是将b和c都当作分割的字符。

用法其实上面两条差不多就可以了,重要的是一些特殊情况:

情况1:字符串中有连续的分割符,例如2中,b也是分割符c也是分隔符,那么在分割bc时会产生一个空字符(""),n个连续的分割符会产生n-1个空字符。下面是调试时的信息:

可以看到中间产生了空字符。

情况2:分割符出现在首部,那么出现几个分割符,就有多少个空字符。例如

public class Main {
    public static void main(String[] args) {
        String ss = "aaabcabcdefg";
        String[] split = ss.split("[a]");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串数组长度为");
        System.out.println(split.length);
    }
}

输出:


bc
bcdefg
分隔后字符串数组长度为
5

前面3个a都是空字符。

情况3:有些正则表达式,这是一种特殊情况,如,*等符号需要添加转义字符\。

解决方法:

针对出现空字符,可以写一个遍历,长度为0的过滤掉。

for(String st:split){
            if(st.length()>0){
                list.add(st);
            }
        }

针对转义字符,编译器会报错,就试试添加\。

补充:Java中Split函数的用法技巧

在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。

如执行:"2|33|4".split("|")

出来的结果是:

""

2

|

3

3

|

4

奇怪吧,不过注意看一下API说明还是知道原因的.

java.lang.string.split

split 方法

将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

stringObj.split([separator,[limit]])

参数

  • stringObj
    必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
  • separator
    可选项。字符串或 正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
  • limit
    可选项。该值用来限制返回数组中的元素个数。

说明

split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解

所以正常的写法是这样的:

1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");

2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";

3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 andb =2 or c=3”,把三个都分隔出来,可以用String.split("and|or");

总结

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

相关文章

  • 详解Java的Struts框架中栈值和OGNL的使用

    详解Java的Struts框架中栈值和OGNL的使用

    这篇文章主要介绍了Java的Struts框架中栈值和OGNL的使用,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-11-11
  • java spring整合junit操作(有详细的分析过程)

    java spring整合junit操作(有详细的分析过程)

    这篇文章主要介绍了java spring整合junit操作(有详细的分析过程),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Java线程安全基础概念解析

    Java线程安全基础概念解析

    这篇文章主要介绍了Java线程安全基础概念解析,希望给大家一个参考,需要的朋友可以了解下。
    2017-09-09
  • java通过证书访问etcd的实现步骤

    java通过证书访问etcd的实现步骤

    Etcd提供了多种语言的客户端库,本文主要介绍了java通过证书访问etcd的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • 如何给yml配置文件的密码加密(SpringBoot)

    如何给yml配置文件的密码加密(SpringBoot)

    这篇文章主要介绍了如何给yml配置文件的密码加密(SpringBoot),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • springboot过滤器和拦截器的实例代码

    springboot过滤器和拦截器的实例代码

    这篇文章主要介绍了springboot过滤器和拦截器的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Java序列化的原理分析及解决

    Java序列化的原理分析及解决

    文章介绍了Java中的序列化机制,包括Serializable和Externalizable接口的区别,以及serialVersionUID的作用,Serializable接口可以序列化的所有子类型本身都是可序列化的,如果要序列化的类有父类,父类也应该实现Serializable接口
    2024-11-11
  • Spring Boot 使用 SSE 方式向前端推送数据详解

    Spring Boot 使用 SSE 方式向前端推送数据详解

    这篇文章主要介绍了Spring Boot 使用SSE方式向前端推送数据详解,SSE简单的来说就是服务器主动向前端推送数据的一种技术,它是单向的,也就是说前端是不能向服务器发送数据的
    2022-08-08
  • Spring事务aftercommit原理及实践

    Spring事务aftercommit原理及实践

    这篇文章主要为大家介绍了Spring事务aftercommit原理及实践,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 如何在SpringBoot中添加拦截器忽略请求URL当中的指定字符串

    如何在SpringBoot中添加拦截器忽略请求URL当中的指定字符串

    这篇文章主要介绍了在SpringBoot中添加拦截器忽略请求URL当中的指定字符串,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08

最新评论