java 如何替换 n
替换字符串中的第n个匹配项
在Java中替换字符串中的第n个匹配项可以通过正则表达式结合循环实现。以下是一种实现方式:

public static String replaceNthOccurrence(String input, String regex, String replacement, int n) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
StringBuffer sb = new StringBuffer();
while(matcher.find()) {
count++;
if(count == n) {
matcher.appendReplacement(sb, replacement);
} else {
matcher.appendReplacement(sb, matcher.group());
}
}
matcher.appendTail(sb);
return sb.toString();
}
替换字符串中的第n个字符
若需要替换字符串中特定位置的字符,可以直接使用StringBuilder:

public static String replaceCharAt(String str, int index, char newChar) {
if(index < 0 || index >= str.length()) {
return str;
}
StringBuilder sb = new StringBuilder(str);
sb.setCharAt(index, newChar);
return sb.toString();
}
替换数组中的第n个元素
对于数组操作,可以直接通过索引替换元素:
public static void replaceArrayElement(Object[] array, int index, Object newElement) {
if(index >= 0 && index < array.length) {
array[index] = newElement;
}
}
使用Apache Commons Lang库
Apache Commons Lang库提供了StringUtils工具类,可以简化字符串操作:
import org.apache.commons.lang3.StringUtils;
public static String replaceNth(String str, String search, String replace, int n) {
return StringUtils.replace(str, search, replace, n);
}
注意事项
处理字符串时需要考虑边界条件,如索引越界或找不到匹配项的情况。正则表达式方法适用于复杂匹配模式,而简单字符替换使用StringBuilder更高效。数组操作时需确保索引有效,避免ArrayIndexOutOfBoundsException异常。






