Java中常用的字符串替换的4种方法
liebian365 2025-03-19 14:03 2 浏览 0 评论
在 Java 中,字符串替换是常见的操作。以下是 4 种常用的字符串替换方法,每种方法都有其适用场景和特点。
方法 1:String.replace()
- 功能:替换字符串中所有匹配的子字符串。
- 特点:
- 区分大小写。
- 支持字符和字符串替换。
- 示例:
java
复制
String str = "Hello, World! Hello, Java!";
String newStr = str.replace("Hello", "Hi"); // 替换所有 "Hello" 为 "Hi"
System.out.println(newStr); // 输出: Hi, World! Hi, Java!
方法 2:String.replaceAll()
- 功能:基于正则表达式替换字符串中所有匹配的子字符串。
- 特点:
- 支持正则表达式。
- 区分大小写。
- 示例:
java
复制
String str = "Hello, 123 World! 456 Java!";
String newStr = str.replaceAll("\\d+", "NUM"); // 替换所有数字为 "NUM"
System.out.println(newStr); // 输出: Hello, NUM World! NUM Java!
方法 3:String.replaceFirst()
- 功能:基于正则表达式替换字符串中第一个匹配的子字符串。
- 特点:
- 支持正则表达式。
- 只替换第一个匹配项。
- 示例:
java
复制
String str = "Hello, 123 World! 456 Java!";
String newStr = str.replaceFirst("\\d+", "NUM"); // 替换第一个数字为 "NUM"
System.out.println(newStr); // 输出: Hello, NUM World! 456 Java!
方法 4:StringBuilder 或 StringBuffer 的替换
- 功能:通过 StringBuilder 或 StringBuffer 的 replace() 方法替换指定位置的字符。
- 特点:
- 适用于需要精确控制替换位置的场景。
- 只能替换字符,不能直接替换字符串。
- 示例:
java
复制
StringBuilder sb = new StringBuilder("Hello, World!");
sb.replace(7, 12, "Java"); // 替换索引 7 到 12 的字符为 "Java"
System.out.println(sb.toString()); // 输出: Hello, Java!
方法对比
方法 | 支持正则表达式 | 区分大小写 | 替换范围 | 适用场景 |
String.replace() | 不支持 | 是 | 所有匹配项 | 简单字符串替换 |
String.replaceAll() | 支持 | 是 | 所有匹配项 | 基于正则表达式的复杂替换 |
String.replaceFirst() | 支持 | 是 | 第一个匹配项 | 替换第一个匹配项 |
StringBuilder.replace() | 不支持 | 是 | 指定位置 | 精确控制替换位置 |
高级用法:正则表达式替换
1. 替换所有数字
java
复制
String str = "Hello, 123 World! 456 Java!";
String newStr = str.replaceAll("\\d+", "NUM");
System.out.println(newStr); // 输出: Hello, NUM World! NUM Java!
2. 替换所有空格
java
复制
String str = "Hello World! Java!";
String newStr = str.replaceAll("\\s+", "-");
System.out.println(newStr); // 输出: Hello-World!-Java!
3. 替换特定字符
java
复制
String str = "Hello, World! Hello, Java!";
String newStr = str.replaceAll("[aeiou]", "*"); // 替换所有元音为 *
System.out.println(newStr); // 输出: H*ll*, W*rld! H*ll*, J*v*!
总结
- 简单替换:使用 String.replace()。
- 正则替换:使用 String.replaceAll() 或 String.replaceFirst()。
- 精确位置替换:使用 StringBuilder.replace()。
根据具体需求选择合适的方法,可以高效完成字符串替换任务。
相关推荐
- python如何对字符串进行操作(python如何对字符串进行操作输出)
-
1.字符串的创建可通过直接赋值、构造或转义字符来创建字符串。#普通字符串s="Hello,World!"#多行字符串(使用三引号)multi_line_str='''Thisi...
- Excel表格中11个常用的字符串函数
-
今天和大家聊聊常用的字符串函数,在不同的条件下,如何选择字符串函数很关键。下面我为大家列举了11个关于字符串的函数公式。一、EXACT(两个字符串进行结果比较)比较两个字符串是否完全相同(这里是要区分...
- 详细介绍一下Python中如何对字符串进行操作?
-
在Python中,字符串做为一种常见的数据处理类型,几乎在每个应用程序中都会被用到。而作为Python中使用最广泛的数据类型Python也是提供了很多强大的方法来支持对于字符串的处理操作。下面我们就来...
- Java中你知道几种从字符串中找指定的字符的数量
-
遇到这样的问题,常规的思路估计就是遍历String,然后逐个对比。下面先看循环遍历循环遍历privatestaticintgetNum(StringoriginStr,Stringtarg...
- C语言strcspn函数详解:字符串的“扫雷探测器”
-
strcspn是C语言标准库中的一个函数,定义在头文件中。它用于计算从字符串的开始到首次出现任何属于指定字符集合的字符之间的字符数量。换句话说,strcspn计算的是主字符串中不包含指定字符集...
- 如何使用 Python 的 f-string 进行字符串格式化
-
Python中的字符串格式化曾经有点麻烦。必须在...
- java判断字符串中是否包含某个字符
-
1使用String类的contains()方法contains()方法用于判断字符串中是否包含指定的字符或字符串。语法如下:publicbooleancontains(CharSequence...
- Python基础:f-string不同数据类型的格式化选项,终极指南!
-
上一篇文章我们介绍了4种字符串格式化方法,其中最现代、最直观的方式是f-string,从Python3.6开始引入,而且时不时就增加一些超级优雅的小改进。今天,钢铁老豆想要继续给大家展开介绍不同数据...
- Excel查找指定字符串,返回相应的结果
-
通过下面的函数,可以实现查找指定字符串,若找到返回“有”,若找不到返回“无”。=IF(ISNUMBER(SEARCH("失业",G3)),"有","无")...
- 一个list中,有b.a.b.c.b.b.写个方法去掉所有b
-
importjava.util.ArrayList;importjava.util.List;publicclassRemoveBFromStringList{/**...
- 掌握Python f-string(掌握催眠能力之后的日常生活)
-
f-string,通常称为格式化字符串文本,是Python3.6中添加的一项强大功能,它提供了一种将表达式包含在字符串文本中的清晰实用的方法。,...
- 深入了解字符串:定义、转义字符和字符串下标
-
字符串是编程中常见的数据类型之一,用于表示文本信息。在绝大多数编程语言中,字符串都是由一系列字符组成的序列,可以包含字母、数字、符号以及空格等。字符串的定义:...
- 100个Java工具类之70:字符串处理工具类StringUtils
-
StringUtils是常用的工具类,提供大量处理字符串的静态方法。StringUtils主要特点...
- Shell中针对字符串的切片,截取,替换,删除,大小写操作
-
切片返回字符串变量var的长度...
- Sqlite - 常规函数 - RTRIM(sqlite命令行工具)
-
在SQLite中,RTRIM函数是一个用于处理字符串的函数,其主要作用是移除字符串右侧(尾部)的指定字符。如果不指定要移除的字符,默认会移除字符串右侧的空格字符。以下是对RTRIM函数的详细...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)