网站首页 > 精选教程 正文
在 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()。
根据具体需求选择合适的方法,可以高效完成字符串替换任务。
猜你喜欢
- 2025-04-07 Java开发者迁移到Kotlin指南(上篇)
- 2025-04-07 支付宝APP支付集成文档(支付宝app支付集成文档怎么弄)
- 2025-04-07 一秒钟变电脑高手 只会Ctrl+C已经OUT了
- 2025-04-07 编写小逻辑程序实现hosts文件的清理
- 2025-04-07 mybatis根据表逆向自动化生成代码:自动生成实体类、mapper文件
- 2025-04-07 Java必学教程:Java main()方法(java中main方法的两种定义)
- 2025-04-07 手把手带你走近全栈项目4:后端-springboot版本降级
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)