开发者

Java split方法使用超详细讲解

开发者 https://www.devze.com 2023-11-19 13:38 出处:网络 作者: Chen_PK
目录1. 问题描述2. 方法介绍2.1 split(String regex)2.1.1 单个分隔符2.1.2 多个分隔符 2.1.3 正则表达式表示分隔符 2.1.4 特殊情况2.2 split(String regex, int limit)补充:你没想到的Ja
目录
  • 1. 问题描述
  • 2. 方法介绍
    • 2.1 split(String regex)
      • 2.1.1 单个分隔符
      • 2.1.2 多个分隔符
      •  2.1.3 正则表达式表示分隔符
      •  2.1.4 特殊情况
    • 2.2 split(String regex, int limit)
    • 补充:你没想到的Java中split函数的用法
      • split:字符串切分,返回String数组
      • 总结

        1. 问题描述

        描述:在日常编写代码时,我们经常遇到需要将一串字符串中的数据进行分析摘取,从中获得分隔符外的数据,此时便不得不提split方法。

        2. 方法介绍

        分隔符可以是任意字符、符号、数字、字符串等。

        2.1 split(String regex)

        2.1.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]);
                } 
            }
        }

         上述代码输出结果

        Java split方法使用超详细讲解

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

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

        Java split方法使用超详细讲解

         反之如果直接使用则会有相反效果, 输出字符串中python的单个字符。如下所示:

        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]);
                }
            }
        }

        Java split方法使用超详细讲解

        2.1.2 多个分隔符

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

        Java split方法使用超详细讲解

         2.1.3 正则表达式表示分隔符

        在正则表达式中"\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]);
                } 
            }
        }

         上述代码输出结果

        Java split方法使用超详细讲解

         2.1.4 特殊情况

        1. 字符串开头有分隔符:开头产生一个空字符串,其余正常。
        2. 分隔符相互紧挨着:每两个分隔符产生一个空字符串,若有三个分隔符则会有2各空字符,以此类推。
        3. 字符串最尾部有分割符:末尾产生一个空字符串,其余正常。

        2.2 split(String regex, int lihttp://www.devze.commit)

        1. 如果 limit > 0,(从左到右)最多分割 n - 1 次,数组的长度将不会大于 n,结尾的空字符串不会丢弃。
        2. 如果 limit < 0,匹配到多少次就分割多少次,而且数组可以是任何长度。结尾的空字符串不会丢弃。
        3. 如果 limit = 0,匹配到多少次就分割多少次,数组可以是任何长度,并且结尾空字符串将被丢弃。

        也就是说,使用split方法时,如果只填一个正则表达式,结尾空字符串将被丢弃

        补充:你没想到的Java中split函数的用法

        split:字符串切分,返回String数组

        语法:

         public String[] split(String regex, int limit)
             // regex:正则表达式分割符
             // limit:分割的份数(等于切分次数+1),这个参数可以不给

        代码示例:

         String str = "Welcome-to-Runoob";
         for(String retval: str.split("-")){
             System.out.println(retval);
         }

        执行结果:

         Welcome

         to

         Runoob

        如果将第二行中的某部分改写为

         Str.split("-",2)

        则结果变为:

         Welcome

         to-Runophpob

        由于在正则表达式语法中有很多特殊字符,比如.*?+,所以有时会用到转义字符,比如

         str = new String("www.runoob.com");
         for(String retval: str.split("\\.",3)){
             System.out.println(retval);
         }

        结果

         www

         runoob

         com

        如果想要使用多种分割符对字符串分割,可以利用正则表达式的语法| [ ]

         String str = new String("1+22*333-4444/5555%666666=?");
         for(String retval: str.split("[+*-/%]")){
             System.out.println(retval); 
         }
         for(String retval: str.split("[0-9.]+")){
             System.out.println(retval);
         }
         for(String retval: str.androidsplit("(\\+)|(-)|(\\*)|(/)|(%)")){
             System.out.println(retval); 
         }
         for(String retval: str.split("[^0-9.]")){
             System.out.println(retval); 
         }

        结果:

         1

         22

         333

         4444

         5555

         666666=?

         ?

         +

         *

         -

         /

         %

         =?

         1

         22

         333

         4444

         5555

         666666=?

         1

         22

         333

         4444

         5555

         666666

        总结

        到此这篇关于Java split方法使用的文章就介绍到这了,更多相关Java split方法使用内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

        0

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        关注公众号