1. 简介
在本篇文章中,我们将介绍 如何在 Java 的字符串(String)中替换指定索引位置的字符。
我们会展示四种不同的实现方式,每种方法都接收原始字符串、要替换的新字符以及目标索引位置作为参数,最终返回替换后的新字符串。
2. 使用字符数组(char[])
最直观的方式是将 String
转换为字符数组 char[]
,然后直接修改对应索引位置的值,最后再构造出新的字符串。
public String replaceCharUsingCharArray(String str, char ch, int index) {
char[] chars = str.toCharArray();
chars[index] = ch;
return String.valueOf(chars);
}
✅ 这是一种底层操作方式,性能不错且可控性高。
⚠️ 注意:这种方式适合对字符串进行多次修改操作时使用,避免频繁创建字符串对象。
3. 使用 substring 方法
Java 的 String
类提供了 substring()
方法,我们可以通过它把原字符串切分为两部分,在指定索引处插入新字符,然后拼接成新字符串:
public String replaceChar(String str, char ch, int index) {
return str.substring(0, index) + ch + str.substring(index + 1);
}
✅ 实现简洁,逻辑清晰。
❌ 但要注意,每次调用都会生成多个临时字符串对象,频繁使用可能会带来性能损耗。
4. 使用 StringBuilder
如果你需要频繁地修改字符串内容,推荐使用 StringBuilder
。它提供了 setCharAt(int index, char ch)
方法可以直接修改指定位置的字符:
public String replaceChar(String str, char ch, int index) {
StringBuilder myString = new StringBuilder(str);
myString.setCharAt(index, ch);
return myString.toString();
}
✅ 性能好,尤其适用于多次修改场景。
⚠️ 注意:虽然叫“Builder”,但它不是线程安全的;如果涉及并发操作,请使用 StringBuffer
。
5. 小结
本文展示了在 Java 中替换字符串中某个索引位置字符的几种常见方式:
- 字符数组操作:灵活、低层控制
- substring 拼接:代码简洁,但可能有性能开销
- StringBuilder/setCharAt:高效、适用于频繁变更
由于 Java 中的 String
是不可变对象(immutable),因此任何“修改”本质上都是创建一个新的字符串实例。
如需查看完整代码示例,可前往 GitHub 仓库:https://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-string-algorithms-2