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.mzph.cn/news/121539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前后端交互系统:在Node.js中运行JavaScript

在Node.js中运行JavaScript&#xff0c;您需要编写适用于服务器端的代码&#xff0c;而不是浏览器端的代码。以下是一些示例代码&#xff0c;用于在Node.js中创建一个简单的HTTP服务器并在浏览器中访问它&#xff1a; // 引入Node.js内置的http模块 const http require(http);…

基于springboot实现校园志愿者管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校园志愿者管理系统演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;校园志愿者管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff…

数据库MySQL(六):事务

事务 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 MySQL中默认事务是自动提交的&#xff0c;当执行完一条DML语句时…

DevChat:VSCode中的AI黑马

前言 编程对于很多人来说&#xff0c;可能是一件复杂且耗时的事情。在结合当下各类AI产品层出不穷的情况下&#xff0c;我是有在认真的去拥抱AI来结合我们的工作&#xff0c;帮助我们的工作提升效率&#xff0c;尝试过我们的官方G P T&#xff0c;以及各类国产AI产品&#xff…

centos7虚拟机部署苍穹私有云环境记录

物理机建议16G内存以上&#xff0c;不然安装gpass过程中带不动虚拟机 步骤1&#xff1a;迅雷下载centos7.9镜像文件&#xff0c;并创建虚拟机&#xff0c;手动安装 http://ftp.sjtu.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 后面安装gpass时会有校验…

5.OsgEarth加载地形

愿你出走半生,归来仍是少年&#xff01; 在三维场景中除了使用影像体现出地貌情况&#xff0c;还需要通过地形体现出地势起伏&#xff0c;还原一个相对真实的三维虚拟世界。 osgEarth可通过直接加载Dem数据进行场景内的地形构建。 1.数据准备 由于我也没有高程数据&#xff0c…

【C程序设计】用心浇灌<C程序>

目录 数据类型 整数类型 实例 浮点类型 void 类型 类型转换 数据类型 在 C 语言中&#xff0c;数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间&#xff0c;以及如何解释存储的位模式。 C 中的类型可分为以下几种&…

C++ 重载

C 允许在同一作用域中的某个函数和运算符指定多个定义&#xff0c;分别称为函数重载和运算符重载。 重载声明 是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明&#xff0c;但是它们的参数列表和定义&#xff08;实现&#xff09;不相同。 重载声明 当…

CUMCM历年赛题汇总

题目来源&#xff1a; 全国大学生数学建模竞赛官网 注&#xff1a;题目和数据均可在官网下载 2021–2023年 年份题号题目2023A定日镜场的优化设计2023B多波束测线问题2023C蔬菜类商品的自动定价与补货决策2023D圈养湖羊的空间利用率2023E黄河水沙监测数据分析2022A波浪能最大…

软考高级之系统架构师之软件工程

软件工程 面向对象设计原则 单一职责&#xff1a;设计目的单一的类开闭原则&#xff1b;对扩展开放&#xff0c;对修改关闭里氏替换&#xff1a;子类可以替代父类依赖倒置&#xff1a;要依赖于抽象&#xff0c;而不是实现。要针对接口编程&#xff0c;不要针对实现编程接口隔…

————python网络并发测试题————

理论篇 1、简述 OSI 七层协议 2、 什么是 C/S 和 B/S 架构 ? 3、 简述 TCP 三次握⼿、四次挥⼿的流程。 4、TCP 和 UDP 的区别 ? 为何基于 tcp 协议的通信⽐基于 udp 协议的通信更可靠? 5、 什么是 socket? 简述基于 tcp 协议的套接字通信流程 6、 简述进程、线程、协…

k8s中 pod 或节点的资源利用率监控

pod 或节点的资源利用率监控 1 简介2 Kubectl Top介绍3 生效kubectl top命令3.1 下载配置components.yaml3.2 修改配置components.yaml参数3 kubectl top 应用3.1 查看node节点的资源占⽤率3.2 查看pod的资源占⽤率1 简介 通过Kubectl Top命令,可以查看你k8snode节点或者pod的…

NSSCTF做题第9页(3)

[GKCTF 2020]CheckIN 代码审计 这段代码定义了一个名为ClassName的类&#xff0c;并在脚本的最后创建了一个ClassName类的实例。 在ClassName类的构造函数中&#xff0c;首先通过调用$this->x()方法获取了请求参数$_REQUEST中的值&#xff0c;并将其赋值给$this->code属性…

1049 数列的片段和

一.问题&#xff1a; 给定一个正数数列&#xff0c;我们可以从中截取任意的连续的几个数&#xff0c;称为片段。例如&#xff0c;给定数列 { 0.1, 0.2, 0.3, 0.4 }&#xff0c;我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4)…

做好事情 讲好故事 开启成功的网络口碑营销

从人类开始交换商品的时代开始&#xff0c;口碑营销就已经存在&#xff0c;是靠口耳传播的营销方式。小马识途认为进入当今移动互联网时代&#xff0c;口碑营销又有了新的发展&#xff0c;网络口碑营销推广开始普及。营销人员将传统口碑营销与移动互联网营销相结合&#xff0c;…

京东平台数据分析:2023年9月京东扫地机器人行业品牌销售排行榜

鲸参谋监测的京东平台9月份扫地机器人市场销售数据已出炉&#xff01; 根据鲸参谋平台的数据显示&#xff0c;9月份&#xff0c;京东平台扫地机器人的销量近14万&#xff0c;环比增长约2%&#xff0c;同比降低约4%&#xff1b;销售额为2.9亿&#xff0c;环比降低约4%&#xff0…

threejs(7)-精通粒子特效

一、初识Points与点材质 // 设置点材质 const pointsMaterial new THREE.PointsMaterial(); import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"; // 导入动画库 import gsa…

Linux云服务器限制ip进行ssh远程连接

对Linux云服务器限制IP进行SSH远程连接的原因主要有以下几点&#xff1a; 增加安全性&#xff1a;SSH是一种加密的网络传输协议&#xff0c;可以保护数据的机密性和完整性。通过限制SSH连接的IP地址&#xff0c;可以防止未经授权的访问和数据泄露。只有拥有访问权限的IP地址才…

Makefile三个版本的编写

1.Makefile Makefile是一个工程管理文件&#xff0c;简化编译的流程&#xff0c;完成自动化编译的过程 在Makefile中&#xff0c;会把编译的过程分为两步&#xff0c;先生成.o文件&#xff0c;再对.o文件链接&#xff0c;生成可执行文件 Makefile由变量、函数、和规则构成 2.引…

分治算法解决归并排序问题

分治算法定义&#xff1a;分治算法是一种问题解决方法&#xff0c;它将一个大问题划分为多个相同或相似的子问题&#xff0c;然后递归地解决这些子问题&#xff0c;最后将子问题的解合并得到原问题的解 作用&#xff1a; 排序算法分治算法在排序算法中得到广泛应用。例如&…