【JavaSE】String类中常用的字符串方法(超全)

目录
1.求字符串的长度
2.判断字符串是否为空
3.String对象的比较
3.1 判断字符串是否相同
3.2 比较字符串大小
3.3 忽略大小写比较
4.字符串查找
5.转化
5.1 数值和字符串转化
5.1.1 数字转字符串 valueof
5.1.2 valueOf的其他用法
5.1.3 字符串转数字
5.2 大小写转换
小写转大写
大写转小写
5.3 字符数组转字符串
5.4 字符串转数组
5.5 格式化
6.字符串替换
7.字符串拆分
8.字符串截取
9.其他操作方法
1.求字符串的长度

![]()
作用
返回此字符串的长度。 长度等于字符串中的数字Unicode code units 。
结果
返回该对象表示的字符序列的长度。
代码示例:
String str1 = "hello";
String str2 = "Hello world";
String str3 = "";
System.out.println(str1.length());
System.out.println(str2.length());
System.out.println(str3.length());
输出结果:

2.判断字符串是否为空


结果
当字符串长度为0的时候返回 true,否则返回 false
代码示例:
String str1 = "hello";
String str2 = "";
System.out.println(str1.isEmpty());
System.out.println(str2.isEmpty());
输出结果:

3.String对象的比较
3.1 判断字符串是否相同


作用
将此字符串与指定对象进行比较。 其结果是
true当且仅当该参数不是null并且是String对象,表示相同的字符序列作为该对象。结果
true如果给定的对象代表一个String等效于这个字符串,false否则
代码示例:
String str1 = "hello";
String str2 = "hello";
String str3 = "world";
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
输出结果:

3.2 比较字符串大小


作用
按字典顺序比较两个字符串。 比较是基于字符串中每个字符的Unicode值。 由该String对象表示的字符序列按字典顺序与由参数字符串表示的字符序列进行比较。 如果String对象按字典顺序排列在参数字符串之前,结果为负整数。 结果是一个正整数,如果String对象按字典顺序跟随参数字符串。 如果字符串相等,结果为零; compareTo返回0 ,当equals(Object)方法将返回true 。
结果
如果参数字符串等于此字符串,则值为0 ; 一个值小于0如果这个字符串的字典比字符串参数小; 如果此字符串的字典大小超过字符串参数,则值大于0 。
代码示例:
String str1 = "abc";
String str2 = "abc";
String str3 = "def";
System.out.println(str1.compareTo(str2));
System.out.println(str1.compareTo(str3));
输出结果:

3.3 忽略大小写比较


与compareTo方式相同,但是忽略大小写比较
代码示例:
String str1 = "hello";
String str2 = "Hello";
String str3 = "abcde";
System.out.println(str1.compareToIgnoreCase(str2));
System.out.println(str1.compareToIgnoreCase(str3));
输出结果:

4.字符串查找
字符串查找也是字符串中非常常见的操作,String类提供的常用查找的方法:



作用
返回char指定索引处的值。 指数范围为0至length() - 1 。 该序列的第一个char值在索引0 ,下一个索引为1 ,依此类推,与数组索引一样。
代码示例:
String str1 = "hello";
System.out.println(str1.charAt(0));
System.out.println(str1.charAt(1));
System.out.println(str1.charAt(2));
System.out.println(str1.charAt(3));
System.out.println(str1.charAt(4));
输出结果:


参数只有一个的时候
![]()

作用
返回指定字符(或字符串)在字符串中第一次出现的下标。找不到返回-1。
代码示例:
String str1 = "ababcab";
int index1 = str1.indexOf("abc");
int index2 = str1.indexOf("ab");
int index3 = str1.indexOf('b');
int index4 = str1.indexOf("c");
System.out.println(index1);
System.out.println(index2);
System.out.println(index3);
System.out.println(index4);
输出结果:

有两个参数的时候


作用
以指定的下标开始搜索,返回指定字符(或字符串)第一次出现在字符串内的下标。
代码示例:
String str1 = "ababcab";
int index1 = str1.indexOf("ab",4);//从str1中下标4位置开始查找
int index2 = str1.indexOf('b',2); //从str1中下标2位置开始查找
System.out.println(index1);
System.out.println(index2);
输出结果:


参数只有一个的时候
作用
从后往前找,返回指定字符(或字符串)第一次出现的位置,没有返回-1
有两个参数的时候

作用
从fromIndex位置开始找,从后往前找指定字符(或字符串)第一次出现的位置,没有返 回-1
代码示例:
String str1 = "ababcababcd";
int index1 = str1.lastIndexOf("abc");
int index2 = str1.lastIndexOf("abc",5); //从5位置倒着往回找
int index3 = str1.lastIndexOf('c');
int index4 = str1.lastIndexOf('c',5); //从5位置倒着往回找
System.out.println(index1);
System.out.println(index2);
System.out.println(index3);
System.out.println(index4);
输出结果:

5.转化
5.1 数值和字符串转化
5.1.1 数字转字符串 valueof
valueOf的部分重载方法




这些方法都是将数字转化成字符串。
代码示例:
String str1 = String.valueOf(1234);
String str2 = String.valueOf(3.14);
System.out.println(str1);
System.out.println(str2);
输出结果:

5.1.2 valueOf的其他用法
使用一:
作用
返回 Object参数的字符串形式。
使用二:

作用
返回将char型的字符数组转化为字符串后的形式
使用三:

作用
如果参数为true ,则返回等于"true"的字符串; 否则,等于一个字符串"false"返回。
使用四:

作用
返回 char参数的字符串形式。
这些方法和数字转成字符串的方法类似,就不用代码进行演示了。
5.1.3 字符串转数字
代码示例:
int data1 = Integer.parseInt("1234");
double data2 = Double.parseDouble("12.34");
System.out.println(data1);
System.out.println(data2);
输出结果:

5.2 大小写转换
小写转大写

代码示例:
String s1 = "hello";
String s2 = "Hello";
String ret1 = s1.toUpperCase();
String ret2 = s2.toUpperCase();
System.out.println(ret1);
System.out.println(ret2);
输出结果:

大写转小写

代码示例:
String s1 = "HELLO";
String s2 = "Hello";
String ret1 = s1.toLowerCase();
String ret2 = s2.toLowerCase();
System.out.println(ret1);
System.out.println(ret2);
输出结果:

5.3 字符数组转字符串
代码示例:
char[] array1 = {'a','b','c'};
String str1 = new String(array1);
System.out.println(str1);
输出结果:

5.4 字符串转数组


作用
将字符串转换为新的字符数组。
代码示例:
String s1 = "hello";
char[] array = s1.toCharArray();
System.out.println(Arrays.toString(array));
输出结果:

5.5 格式化


使用指定的格式字符串和参数返回格式化的字符串。
代码示例:
String str = String.format("%d-%d-%d",2023,8,7);
System.out.println(str);
输出结果:

6.字符串替换
使用一个指定的新的字符串替换掉已有的字符串数据,可用的方法如下:



参数
regex - 要匹配此字符串的正则表达式
replacement - 要替换第一个匹配的字符串
作用
- 从原始字符串的开头开始,搜索并找到第一个与正则表达式匹配的子串。
- 将该匹配项替换为指定的新字符串。
- 返回替换后的新字符串。
代码示例:
String str = "abcd abcd abcd";
String ret1 = str.replaceFirst("ab","OO");
System.out.println(ret1);
输出结果:



参数
regex 参数是一个正则表达式,用于匹配原始字符串中的子串。
replacement 参数是要替换匹配项的新字符串。
作用
- 从原始字符串的开头开始,搜索并找到所有与正则表达式匹配的子串。
- 将每个匹配项都替换为指定的新字符串。
- 返回替换后的新字符串。
代码示例:
String str = "abcd abcd abcd";
String ret1 = str.replaceAll("ab","OO");
System.out.println(ret1);
输出结果:

需要注意的是,replaceAll方法使用的是正则表达式进行匹配,因此在使用时需要注意正则表达式的语法和特殊字符的转义。如果不需要使用正则表达式进行匹配,可以考虑使用replace方法来进行简单的字符串替换。

重载1
作用
通过用 newChar 字符替换字符串中出现的所有 oldChar 字符,并返回替换后的新字符串。
重载2
将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列。 替换从字符串开始到结束,例如,在字符串“aaa”中用“b”替换“aa”将导致“ba”而不是“ab”。
参数
target - 要替换的char值序列
replacement - char值的替换顺序
代码示例:
String str = "abcd abcd abcd";
String ret1 = str.replace("ab","OO");
String ret2 = str.replace('a','A');
System.out.println(ret1);
System.out.println(ret2);
输出结果:

7.字符串拆分
可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。 可用方法如下:


重载方法1:
作用
- 从原始字符串中找到所有与分隔符匹配的子串,并根据分隔符将原始字符串分割成多个子串。
- 将这些子串存储在一个字符串数组中。
- 返回该字符串数组。
代码示例1:
String str = "hello abc world";
String[] ret = str.split(" ");
for (int i = 0; i < ret.length; i++) {System.out.println(ret[i]);
}
输出结果1:

代码示例2:拆分IP地址
String str = "192.168.1.1";
String[] ret = str.split("\\.");
for (int i = 0; i < ret.length; i++) {System.out.println(ret[i]);
}
输出结果2:

代码示例:
String str = "name=zhangsan&age=10";
String[] ret = str.split("=|&");//用=和&分割
for (int i = 0; i < ret.length; i++) {System.out.println(ret[i]);
}
输出结果3
注意事项:
1. 字符"|","*","+"都得加上转义字符,前面加上 "\\" .
2. 而如果是 "\\" ,那么就得写成 "\\\\" .
3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符.
代码示例3: 多次拆分

结果和上面输出结果3相似。
重载方法2:

作用
- 从原始字符串中找到与正则表达式匹配的子串。
- 将原始字符串分割成多个子串,每个子串都保存在数组中。
- 只保存前
limit-1个子串,如果limit为负数或为零,则不限制分割数。 - 将剩余的未分割的部分作为数组的最后一个元素保存。
代码示例:
String str = "hello abc world";
String[] ret = str.split(" ",2);//限制分割组数为2组
for (int i = 0; i < ret.length; i++) {System.out.println(ret[i]);
}
输出结果:
8.字符串截取
从一个完整的字符串之中截取出部分内容。可用方法如下:

代码示例:
String str = "abcdefg";
String ret1 = str.substring(0,3); //截取下标0~2字符串
String ret2 = str.substring(3); //截取下标3以后的字符串
System.out.println(ret1);
System.out.println(ret2);
输出结果:

注意事项:
- 索引从0开始
- 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标
9.其他操作方法

代码示例:
String str = " abcde fg hijk ";
System.out.println(str);
System.out.println(str.trim());
输出结果:

文章到这里就结束啦,如果有什么地方写得还不到位欢迎在评论区提出来,如果觉得有收获的话记得给文章三连支持哦~~🤣🤣

相关文章:
【JavaSE】String类中常用的字符串方法(超全)
目录 1.求字符串的长度 2.判断字符串是否为空 3.String对象的比较 3.1 判断字符串是否相同 3.2 比较字符串大小 3.3 忽略大小写比较 4.字符串查找 5.转化 5.1 数值和字符串转化 5.1.1 数字转字符串 valueof 5.1.2 valueOf的其他用法 5.1.3 字符串转数字 5.2 大小写转…...
Bootload U-Boot分析
Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。 对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此…...
以公益之行,筑责任之心——2023年中创算力爱心公益助学活动
捐资助学是一项功在当代、利在千秋的义举。 高考录取工作已经开始,一张张高校录取通知书也陆续送达各位准大学生手中。当他们怀揣着对大学的好奇与憧憬,准备迈进理想的大学时,还有一群人,他们渴望知识,却因经济困难而…...
【机器学习】处理样本不平衡的问题
文章目录 样本不均衡的概念及影响样本不均衡的解决方法样本层面欠采样 (undersampling)过采样数据增强 损失函数层面模型层面采样集成学习 决策及评估指标 样本不均衡的概念及影响 机器学习中,样本不均衡问题经常遇到,比如在金融…...
Android前沿技术?Jetpack如何?
Jetpack Compose是Android开发领域的一项前沿技术,它提供了一种全新的方式来构建用户界面。近年来,Jetpack Compose在各大招聘等网站上的招聘岗位逐渐增多,薪资待遇也相应提高。本文将从招聘岗位的薪资与技术要求入手,分析Jetpack…...
为react项目添加开发/提交规范(前端工程化、eslint、prettier、husky、commitlint、stylelint)
因历史遗留原因,接手的项目没有代码提醒/格式化,包括 eslint、pretttier,也没有 commit 提交校验,如 husky、commitlint、stylelint,与其期待自己或者同事的代码写得完美无缺,不如通过一些工具来进行规范和…...
小研究 - MySQL 数据库安全加固技术的研究(一)
随着信息系统的日益普及,后台数据库的安全问题逐步被人们重视起来。以当下热门的MySQL 数据库为例,通过分析数据库的安全机制以及总结数据库面临的安全风险,针对性地提出了相应的加固策略,为数据库的安全加固工作提供了技术支撑。…...
linux安装redis带图详细
如何在Linux系统中卸载Redis 一、使用apt-get卸载Redis sudo apt-get purge redis-server如果使用apt-get安装Redis,可以使用apt-get purge命令完全卸载Redis。其中,purge命令会不仅仅删除Redis二进制文件,还会删除配置文件、数据文件和日志…...
MySql——数据库常用命令
一、关于数据库的操作 查看mysql中有哪些数据库 show databases;显示创建指定数据库MySQL语句 SHOW CREATE DATABASE 数据库名:使用指定数据库 use 数据库名;查看当前使用的是哪个数据库 select database();查看指定数据库下有哪些表 use 数据库名; -- 先选择…...
如何通过 WordPress 数据库启用插件?【进不去后台可用】
如果您无法访问 WordPress 后台并需要激活插件以恢复访问权限,则可以通过 WordPress 数据库来实现。本文将向您展示如何使用数据库轻松激活 WordPress 插件。 何时使用数据库激活 WordPress 插件? 许多常见的 WordPress 错误会阻止网站所有者访问 WordP…...
芯片热处理设备 HTR-4立式4寸快速退火炉
HTR-4立式4寸快速退火炉 HTR-4立式4寸快速退火炉(芯片热处理设备)广泛应用在IC晶圆、LED晶圆、MEMS、化合物半导体和功率器件等多种芯片产品的生产,和欧姆接触快速合金、离子注入退火、氧化物生长、消除应力和致密化等工艺当中,通…...
小研究 - 基于 MySQL 数据库的数据安全应用设计(一)
信息系统工程领域对数据安全的要求比较高,MySQL 数据库管理系统普遍应用于各种信息系统应用软件的开发之中,而角色与权限设计不仅关乎数据库中数据保密性的性能高低,也关系到用户使用数据库的最低要求。在对数据库的安全性进行设计时…...
mysql转sqlite3
在项目中需要将mysql迁移到sqlite3中,此时需要作数据转换 准备工作 下载mysql2sqlite转换工具 https://github.com/dumblob/mysql2sqlite/archive/refs/heads/master.zip 下载sqlite3 https://www.sqlite.org/download.html 转换 命令行中输入如下命令 1、cd …...
在linux中使用 ./configure 时报错
./configure --build编译平台 --host运行平台 --target目标平台 1. configure: error: cannot guess build type; you must specify one 解决办法:指定编译平台 ./configure --buildarm 2. configure: error: Either a previously installed…...
【LeetCode 算法】Reverse String 反转字符串
文章目录 Reverse String 反转字符串问题描述:分析代码双指针 Tag Reverse String 反转字符串 问题描述: 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,…...
linux sysctl.conf 常用参数配置
kernel.sysrq 0 kernel.core_uses_pid 1 kernel.msgmnb 65536#默认为16384,调高 kernel.msgmax 65536#默认为16384,调高 kernel.shmmax 68719476736#以sctl -a实际查询出的为准 kernel.shmall 4294967296#以sctl -a实际查询出的为准 net.ipv4.ip_f…...
【stm32】初识stm32—stm32环境的搭建
文章目录 🛸stm32资料分享🍔stm32是什么🎄具体过程🏳️🌈安装驱动🎈1🎈2 🏳️🌈建立Start文件夹 🛸stm32资料分享 我用夸克网盘分享了「STM32入门教程资料…...
Spring Boot3.0基础篇(二):Web 开发
Web 开发 Spring Boot Web 开发非常的简单,其中包括常用的 json 输出、filters、property、log 等 json 接口开发 在以前使用 Spring 开发项目,需要提供 json 接口时需要做哪些配置呢 添加 jackjson 等相关 jar 包配置 Spring Controller 扫描对接的方…...
【WebRTC---源码篇】(三:一)音频轨
音频轨的创建时序在Conductor::AddTracks()中 rtc::scoped_refptr<webrtc::AudioTrackInterface> audio_track(peer_connection_factory_->CreateAudioTrack(kAudioLabel, peer_connection_factory_->CreateAudioSource(cricket::AudioOptions()))); 通过代码我们…...
POM文件总体配置详细说明
今天跑一个项目,报错显示他的pom文件有问题,需要一个标准的pom文件对比,希望能帮到各位! <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" …...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...


