思路:
代码实现:
public String replaceBlank(String str){
if (str == null || "".equals(str)){
return null;
}
// 将原字符串转化为字符数组
char[] strs = str.toCharArray();
int strsLen = strs.length;
// 统计原字符串的空格
int blankCount = 0;
for(int i = 0;i < strsLen;i ++){
if(' ' == strs[i]){
blankCount ++;
}
}
// 新的字符数组的长度
int newLen = strsLen + blankCount * 2;
if(newLen == strsLen){
return str;
}
int originalIndex = strsLen - 1;
int newIndex = newLen - 1;
// 新的字符数组
char[] newStrs = new char[newLen];
while (originalIndex < newIndex){
if(strs[originalIndex] != ' '){
newStrs[newIndex --] = strs[originalIndex --];
}else{
newStrs[newIndex --] = '0';
newStrs[newIndex --] = '2';
newStrs[newIndex --] = '%';
originalIndex --;
}
}
return String.valueOf(newStrs);
}