在 Java 中,String 是不可变(immutable)的,所以“替换字符”实际上是生成一个新的字符串。常见方式有以下几种:
replace(最常用)String s = "hello";
String result = s.replace('l', 'L');
System.out.println(result); // heLLo
String s = "hello world";
String result = s.replace("world", "java");
System.out.println(result); // hello java
✅ 特点:
replaceAll(支持正则)String s = "a1b2c3";
String result = s.replaceAll("\\d", "#");
System.out.println(result); // a#b#c#
✅ 适合:
⚠️ 注意:第一个参数是正则表达式
replaceFirst(只替换第一次)String s = "abcabc";
String result = s.replaceFirst("a", "X");
System.out.println(result); // Xbcabc
StringBuilder(频繁修改时推荐)String s = "hello";
StringBuilder sb = new StringBuilder(s);
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == 'l') {
sb.setCharAt(i, 'L');
}
}
String result = sb.toString();
✅ 适合:
String → char[](不推荐)char[] chars = s.toCharArray();
// 修改 chars
String result = new String(chars);
⚠️ 一般不推荐,破坏了字符串不可变原则
| 方式 | 是否正则 | 是否全部替换 |
|---|---|---|
| replace | ❌ | ✅ |
| replaceAll | ✅ | ✅ |
| replaceFirst | ✅ | ❌ |
| StringBuilder | ❌ | 手动控制 |
如果你是具体场景(比如只替换某一位、忽略大小写、替换中文等),可以告诉我,我给你写示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。