请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
public class Solution {
public String replaceSpace(StringBuffer str) {
if(str == null){
return null;
}
StringBuffer newStr = new StringBuffer();
int i = 0;
for(; i< str.length(); i++){
if(str.charAt(i) != ' '){
newStr.append(str.charAt(i));
}
else{
newStr.append('%');
newStr.append('2');
newStr.append('0');
}
}
return newStr.toString();
}
}
按照剑指offer上的思路:
public class Solution {
public String replaceSpace(StringBuffer str) {
char[] ch = str.toString().toCharArray();
int spacenum = 0;
for(int i =0; i<ch.length; i++){
if(ch[i]==' '){
spacenum++;
}
}
char[] ch1 = new char[2*spacenum + str.length()];
int len = 2*spacenum+str.length()-1;
for(int i=ch.length-1; i>=0; i--){
if(ch[i] != ' '){
ch1[len--] = ch[i];
}else{
ch1[len--] = '0';
ch1[len--] = '2';
ch1[len--] = '%';
}
}
return String.valueOf(ch1);
}
}