题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”
public class Example04 {
public StringBuilder replaceSpace(StringBuilder str) {
int spacenum = 0;//计算空格数
for(int i=0;i<str.length();i++) {
if(str.charAt(i)==' ') {
spacenum++;
}
}
int indexold = str.length()-1; //替换前str的下标
int indexnew = indexold+spacenum*2; //替换后str的下标
int newlength = indexnew+1; //转换后数组的长度
str.setLength(newlength);
while(indexold>=0) {
if(spacenum==0) {
break;
}
if(str.charAt(indexold)==' ') {
str.setCharAt(indexnew--, '0');
str.setCharAt(indexnew--, '2');
str.setCharAt(indexnew--, '%');
spacenum--;
}else {
str.setCharAt(indexnew--,str.charAt(indexold));
}
indexold--;
}
return str;
}
public static void main(String[] args) {
StringBuilder str = new StringBuilder("We are happy");
Example04 e = new Example04();
System.out.println(e.replaceSpace(str));
}
}