public class Solution {
public String replaceSpace(StringBuffer str) {
int len = str.length();
int rightMoveCount = 0;
for(int i = 0; i < len; i++) {
int newIndex = i + rightMoveCount;
if(' ' == str.charAt(newIndex)) {
str.replace(newIndex, newIndex+1 , "%20");
rightMoveCount += 2;
}
}
return str.toString();
}
} 3个字符替换1个字符,导致的结果就是原来数组元素的索引要+2。第一次替换+2,第二次替换+2*2,以此类推,只有这样才能够在新数组中遍历初始数组中的空格并完成替换。

京公网安备 11010502036488号