首先计算空格数量 spaceNum, 再增加StringBuffer长度, 注意要
* 2
不是*3
之后双指针遍历字符串数组
public static String replaceSpace(StringBuffer str) {
int spaceNum = 0;
for (int i = 0; i < str.length(); i++) {
spaceNum = str.charAt(i) == ' ' ? ++spaceNum : spaceNum;
}
int i = str.length() - 1;
str.setLength(str.length() + spaceNum * 2);
int j = str.length() - 1;
while (spaceNum > 0) {
if (str.charAt(i) != ' ') {
str.setCharAt(j--, str.charAt(i--));
} else {
i--;
spaceNum--;
str.setCharAt(j--, '0');
str.setCharAt(j--, '2');
str.setCharAt(j--, '%');
}
}
return str.toString();
}