这是我的代码:
public static String replaceIfOdd(String stringToChange,
String searchingWord, String replacingWord) {
final String separator = "#######";
String splittingString = stringToChange.replaceAll(searchingWord,
separator + searchingWord);
String[] splitArray = splittingString.split(separator);
String result = "";
for (int i = 0; i < splitArray.length; i++) {
if (i % 2 == 1)
splitArray[i] = splitArray[i].replace(searchingWord,
replacingWord);
result += splitArray[i];
}
System.out.println(result);
return result;
}
称呼它的方式:
replaceIfOdd("ces11111111", "11", "CS219");
这背后的逻辑如下:
我将所有出现的 替换searchingWord
为separator + searchingWord
。之后,我只是使用该split
函数拆分结果字符串。然后我循环遍历数组的所有元素,只有当searchingWord
出现在数组中的奇数位置时才进行正确的替换,同时,我只是重新创建字符串并完成正确的替换。
希望这就是您要寻找的东西!
PS:我使用一个字符串separator
来分解stringToChange
,显然如果你stringToChange
有这样一个字符串,该方法不会给你正确的结果......如果你担心,我会尝试考虑不同的实现它。再见!