在 Java 中,String 是不可变的,这意味着一旦创建了一个 String 对象,就无法直接在原始对象上进行修改。因此,要替换 String 中特定位置的字符,你需要创建一个新的 String 对象。下面我将介绍几种实现方式,每种方式都附带示例代码和可能的第三方库依赖。
假设我们要将字符串中指定位置的字符替换为新字符。
示例字符串: "Hello, world!"
要替换位置:7(索引从 0 开始)
新字符: 'G'
public class StringReplaceExample {
public static void main(String[] args) {
String originalString = "Hello, world!";
int indexToReplace = 7;
char newChar = 'G';
StringBuilder stringBuilder = new StringBuilder(originalString);
stringBuilder.setCharAt(indexToReplace, newChar);
String modifiedString = stringBuilder.toString();
System.out.println(modifiedString); // Output: "Hello, Gorld!"
}
}
public class StringReplaceExample {
public static void main(String[] args) {
String originalString = "Hello, world!";
int indexToReplace = 7;
char newChar = 'G';
String modifiedString = originalString.substring(0, indexToReplace) +
newChar +
originalString.substring(indexToReplace + 1);
System.out.println(modifiedString); // Output: "Hello, Gorld!"
}
}
public class StringReplaceExample {
public static void main(String[] args) {
String originalString = "Hello, world!";
int indexToReplace = 7;
char newChar = 'G';
String modifiedString = originalString.replaceAll("(.{" + indexToReplace + "}).", "$1" + newChar);
System.out.println(modifiedString); // Output: "Hello, Gorld!"
}
}
如果你想要使用第三方库,例如 Apache Commons Lang,来简化操作,可以使用 StringUtils
类。
Maven 依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version> <!-- 使用最新版本 -->
</dependency>
Gradle 依赖:
implementation 'org.apache.commons:commons-lang3:3.12.0' // 使用最新版本
代码示例:
import org.apache.commons.lang3.StringUtils;
public class StringReplaceExample {
public static void main(String[] args) {
String originalString = "Hello, world!";
int indexToReplace = 7;
char newChar = 'G';
String modifiedString = StringUtils.overlay(originalString, String.valueOf(newChar), indexToReplace, indexToReplace + 1);
System.out.println(modifiedString); // Output: "Hello, Gorld!"
}
}
这些都是在 Java 中替换特定位置字符串的几种方法。你可以根据需要选择其中之一,并根据示例代码进行实现。如果要使用第三方库,例如 Apache Commons Lang,也可以根据提供的依赖坐标进行集成。