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

news2025/1/19 17:03:15

 

目录

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指定索引处的值。 指数范围为0length() - 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 - 要替换第一个匹配的字符串

作用

  1. 从原始字符串的开头开始,搜索并找到第一个与正则表达式匹配的子串。
  2. 将该匹配项替换为指定的新字符串。
  3. 返回替换后的新字符串。

代码示例:

String str = "abcd abcd abcd";
String ret1 = str.replaceFirst("ab","OO");
System.out.println(ret1);

输出结果:

 

参数 

regex 参数是一个正则表达式,用于匹配原始字符串中的子串。

replacement 参数是要替换匹配项的新字符串。 

作用 

  1. 从原始字符串的开头开始,搜索并找到所有与正则表达式匹配的子串。
  2. 将每个匹配项都替换为指定的新字符串。
  3. 返回替换后的新字符串。

代码示例:

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. 从原始字符串中找到所有与分隔符匹配的子串,并根据分隔符将原始字符串分割成多个子串。
  2. 将这些子串存储在一个字符串数组中。
  3. 返回该字符串数组。

 代码示例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:

  作用

  1. 从原始字符串中找到与正则表达式匹配的子串。
  2. 将原始字符串分割成多个子串,每个子串都保存在数组中。
  3. 只保存前limit-1个子串,如果limit为负数或为零,则不限制分割数。
  4. 将剩余的未分割的部分作为数组的最后一个元素保存。

 代码示例:

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

输出结果:

 注意事项:

  1. 索引从0开始
  2. 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标

9.其他操作方法

 代码示例:

String str = " abcde fg hijk ";
System.out.println(str);
System.out.println(str.trim());

 输出结果:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/843085.html

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

相关文章

innodb存储引擎探究(一)

mysql 体系结构和存储引擎 数据库&#xff1a;物理操作系统文件或者其他形式的文件 实例&#xff1a;mysql数据库由一个共享内存区和后台进程组成 启动mysql实例时&#xff0c;会读取配置文件&#xff0c;安装以下顺序 mysql体系结构 mysql插件式的一个存储引擎可以根据业务…

如何设置 Eclipse Git 插件中的默认作者和提交者

1、git提交代码时默认带出Windows的系统用户 2、Window->Preferences->Team->Configuration->Add Entry 3、输入键值对&#xff08;user.name要设置的值&#xff09;&#xff08;user.email要设置的值&#xff09;->应用保存 4、应用后&#xff0c;再次提交代码…

【AI赋能】人工智能在自动驾驶时代的应用

自我介绍 我是秋说&#xff0c;研究 人工智能、大数据 等前沿技术&#xff0c;传递 Java、Python 等语言知识。 &#x1f4ac;主页链接&#xff1a;秋说的博客 &#x1f4c6; 学习专栏推荐&#xff1a; 人工智能&#xff1a;创新无限&#x1f4ab; MySQL进阶之路&#x1f3c6…

大数据Flink(五十八):Flink on Yarn的三种部署方式介绍

文章目录 Flink on Yarn的三种部署方式介绍 一、​​​​​​​Session模式

Elasticsearch 摄取管道 — 检测到管道的死循环

在数据处理和摄取领域&#xff0c;管道在组织和自动化数据从源到目的地的流动方面发挥着至关重要的作用。 管道是数据按顺序通过的一系列处理阶段&#xff0c;每个阶段负责特定任务。 然而&#xff0c;有时&#xff0c;管道可能会遇到一个重大挑战&#xff0c;称为 “Cycle det…

年薪54840美元|中医学应届博士受聘美国宾大博士后职位

E博士的个人规划是博士毕业即出国做博后工作&#xff0c;当其明确毕业时间后&#xff0c;我们就依照计划提前9个月开始了申请操作。最终落实了宾夕法尼亚大学医学院的博后职位&#xff0c;年薪为54840美元&#xff0c;我们为其实现了毕业即出国的愿望。 E博士背景&#xff1a; …

状态模式(C++)

定义 允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。 应用场景 在软件构建过程中&#xff0c;某些对象的状态如果改变&#xff0c;其行为也会随之&#xff0c;而发生变化&#xff0c;比如文档处于只读状态&#xff0c;其支持的行为和读写…

【Spring】Bean的作用域和生命周期

目录 一、引入案例来探讨Bean的作用域 二、Bean的作用域 2.1、Bean的6种作用域 2.2、设置Bean的作用域 三、Spring的执行流程 四、Bean的声明周期 1、生命周期演示 一、引入案例来探讨Bean的作用域 首先我们创建一个User类&#xff0c;定义一个用户信息&#xff0c;在定义…

线程池监控

如何监控线程池 文章目录 如何监控线程池线程池两个点需要监控第一点:线程的变化情况第二点:任务的变化 用来监控线程变化的方法自定义一个带监控的线程池,然后继承ThreadPoolExecutor,重载构造方法 自定义线程池中线程的名称的4种方式Spring 框架提供的 CustomizableThreadFac…

uniapp 微信小程序 上下滚动的公告通知(只取前3条)

效果图&#xff1a; <template><view class"notice" click"policyInformation"><view class"notice-icon"><image mode"aspectFit" class"img" src"/static/img/megaphone.png"></i…

行业追踪,2023-08-07

自动复盘 2023-08-07 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

0807|IO进程线程day9 IPC对象概念及示例(消息队列、共享内存、信号灯集)

0 什么是IPC机制 概念&#xff1a; IPC机制&#xff1a;Inter Process Communication&#xff0c;即进程间通信机制。 进程与进程间的用户空间相互独立&#xff0c;内核空间共享。所以如果要实现进程间的通信&#xff0c;需要使用进程间通信机制。 分类&#xff08;3类…

资深测试总结,Web自动化测试POM设计模式封装框架,看这篇就够了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 线性脚本 import…

Maven分模块-继承-聚合-私服的高级用法

Maven分模块-继承-聚合-私服的高级用法 JavaWeb知识&#xff0c;介绍Maven的高级用法&#xff01;&#xff01;&#xff01; 文章目录 Maven分模块-继承-聚合-私服的高级用法1. 分模块设计与开发1.1 介绍1.2 实践1.2.1 分析1.2.2 实现 1.3 总结 2. 继承与聚合2.1 继承2.1.1 继承…

服了呀,现在的00后,实在是太卷了

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天&#xff0c;原来这位小老弟家里条…

收藏这8个好用的原型设计工具,轻松制作原型图

在设计工作中&#xff0c;原型设计是非常关键的一步&#xff0c;而原型设计工具又能帮助设计师更轻松地完成设计工作。今天本文将与大家分享8个好用的原型设计工具&#xff0c;一起来看看吧&#xff01; 1、即时设计 即时设计是一个能在线协作的原型工具&#xff0c;也就是说…

DataGrip 配置 HiveServer2 远程连接访问

文章目录 集群配置 HiveServer2 服务DataGrip 配置 HiveServer2 访问 Hive 集群配置 HiveServer2 服务 1.在 Hive 的配置文件 hive-site.xml 中添加如下参数&#xff1a; <!-- 指定 HiveServer2 运行端口&#xff0c;默认为&#xff1a;10000 --><property><na…

ELK日志分析系统简介

ELK日志分析系统简介 ElasticsearchLogstashKibana主要功能Kibana日志处理步骤ELK的工作原理 日志服务器 提高安全性 集中存放日志 缺陷 ​ 对日志的分析困难 ELK日志分析系统 Elasticsearch 概述:提供了一个分布式多用户能力的全文搜索引擎 核心概念 接近实时 集群 节…

关于安卓jar包修改并且重新发布

背景&#xff1a; 对于某些jar包&#xff0c;其内部是存在bug的&#xff0c;解决的方法无外乎就有以下几种方法&#xff1a; &#xff08;1&#xff09;通过反射&#xff0c;修改其赋值逻辑 &#xff08;2&#xff09;通过继承&#xff0c;重写其方法 &#xff08;3&#xff0…

SQL-每日一题【1164. 指定日期的产品价格】

题目 产品数据表: Products 写一段 SQL来查找在 2019-08-16 时全部产品的价格&#xff0c;假设所有产品在修改前的价格都是 10 。 以 任意顺序 返回结果表。 查询结果格式如下例所示。 示例 1: 解题思路 1.题目要求我们查找在 2019-08-16 时全部产品的价格&#xff0c;假设所…