当前位置:首页 » 《休闲阅读》 » 正文

Java中split方法简介

14 人参与  2024年04月11日 08:50  分类 : 《休闲阅读》  评论

点击全文阅读


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://m.zhangshiyu.com/post/93516.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1