/**
* 剑指 Offer 05. 替换空格
* 思路:如果给定的字符数组能够容纳替换后的字符串,则可以从后开始替换
* */
public class Solution {
public String replaceSpace(String s) {
// 统计空格数量
int spaces = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
spaces++;
}
}
// 没有空格提前返回
if (spaces == 0) {
return s;
}
// 替换空格
char[] chars = new char[s.length() + spaces * 2];
for (int i = 0, j = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
chars[j++] = '%';
chars[j++] = '2';
chars[j++] = '0';
} else {
chars[j++] = s.charAt(i);
}
}
return new String(chars);
}
}