【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" …...
2025届最火的五大降重复率神器推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 把AI生成内容的痕迹降下来,其关键在于回归自然表达,具体来说&#x…...
FUTURE POLICE模型ComfyUI可视化工作流搭建指南
FUTURE POLICE模型ComfyUI可视化工作流搭建指南 你是不是也对那些能生成未来感、赛博朋克风格图像的AI模型感到好奇?但一看到复杂的代码和命令行,就觉得头大,不知道从何下手。今天,我们就来聊聊一个特别酷的解决方案——用ComfyU…...
C++ STL 容器扩容与内存分配机制
C STL容器作为现代C编程的核心组件,其高效的动态内存管理机制一直是开发者关注的焦点。当vector需要容纳更多元素时,它是如何优雅地扩展容量的?unordered_map又是如何平衡哈希冲突与内存消耗的?本文将深入剖析STL容器扩容与内存分…...
效率翻倍!LiuJuan Z-Image多图批量生成攻略,一次产出N张创意作品
效率翻倍!LiuJuan Z-Image多图批量生成攻略,一次产出N张创意作品 在AI图片生成领域,最令人头疼的莫过于反复调整参数、等待单张图片生成的低效流程。今天,我将分享如何利用LiuJuan Z-Image Generator的批量生成功能,一…...
Hunyuan-MT-7B翻译模型部署:Docker环境隔离实战解析
Hunyuan-MT-7B翻译模型部署:Docker环境隔离实战解析 想让一个支持33种语言互译、性能顶尖的70亿参数大模型,在你的电脑上“一键启动”吗?听起来像是实验室里的高端玩具,但今天我要告诉你,通过Docker,这完全…...
STM32+OneNET 智能家居项目踩坑全记录:数据不显示、更新慢、步长校验全解析
一、OneNET 数据更新极慢,2 分钟才刷新一次 问题现象 代码里设置的是timeCount>200(约 5 秒)发送一次数据,结果 OneNET 平台要 2 分钟才更新一次,完全不实时。 根因分析 主循环耗时严重!原本以为 5 …...
Vue与React核心技术大比拼,万象EXCEL开发(十一)excel 结构化查询 ——东方仙盟金丹期。
Vue 与 React 的核心技术差异 响应式系统实现 Vue 基于 Object.defineProperty(Vue 2)或 Proxy(Vue 3)实现数据劫持,自动追踪依赖关系。React 依赖显式的 setState 或 useState 触发重新渲染,采用不可变数据…...
Hunyuan-MT-7B部署教程:像素语言传送门在阿里云ACK集群中实现高可用服务编排
Hunyuan-MT-7B部署教程:像素语言传送门在阿里云ACK集群中实现高可用服务编排 1. 项目概述 像素语言跨维传送门(Pixel Language Portal)是基于腾讯Hunyuan-MT-7B大模型构建的创新翻译工具。与传统翻译软件不同,它将语言转换过程设计为16-bit像素冒险体验…...
OpenClaw+SecGPT-14B:构建无需编程的内网资产管理系统
OpenClawSecGPT-14B:构建无需编程的内网资产管理系统 1. 为什么需要无代码内网资产管理 去年接手公司IT运维时,我发现内网设备清单还是三年前的Excel表格。每当新设备接入或旧设备淘汰,手动更新文档总会被遗忘。更麻烦的是,不同…...
深度学习项目训练环境作品集:10类常见图像分类任务的统一训练模板与结果汇总
深度学习项目训练环境作品集:10类常见图像分类任务的统一训练模板与结果汇总 1. 环境准备与快速上手 深度学习项目训练往往需要复杂的环境配置,从框架安装到依赖库配置,整个过程耗时且容易出错。本镜像基于深度学习项目改进与实战专栏&…...


