Java中常用的字符串替换的4种方法

createh52个月前 (02-01)技术教程14

在 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()。

根据具体需求选择合适的方法,可以高效完成字符串替换任务。

相关文章

java字符串(java字符串截取方法有哪些)

String简介String类在java.lang包下,所以使用的时候不需要导包String类代表字符串,java中所有字符串文字例如"abc",都被实现为此类的实例,也就是说,java程序中所有双引...

漫画:为什么Java里面的String对象是不可变的?

String的不变性String在Java中特别常用,相信很多人都看过他的源码,在JDK中,关于String的类声明是这样的:public final class Str...

「Java必修课」判断String是否包含子串的四种方法及性能对比

1 简介判断一个字符串是否包含某个特定子串是常见的场景,比如判断一篇文章是否包含敏感词汇、判断日志是否有ERROR信息等。本文将介绍四种方法并进行性能测试。2 四种方法2.1 JDK原生方法Strin...

Java中字符串StringBuffer和StringBuilder的使用

Java中表示字符串的有三个类:String、StringBuffer和StringBuilder。其中,String的长度是不可变的,而StringBuffer和StringBuilder是长度可变...