您的位置:首页 > 其它

将字符串中的空格替换为%20

2017-10-25 22:58 274 查看
分析:若从前往后遍历字符串插入%20移动的位数较多,每经过一次空格插入后,空格后面的字符都会往后移动

因此尝试从字符串后面往前面遍历,这样事先计算出需要的字符位数,再将%20插入,这样移动的位数较少

public class solution {

public static void main(String[] args) {

StringBuffer str1 = new StringBuffer("we are family");

// String str1 = "we are family";
System.out.println(replaceSpace(str1));

}

public static String replaceSpace(StringBuffer str){
int i = 0;
int oldnumber = 0;
int spacenumber = 0;
char[] string = str.toString().toCharArray();

// char[] string = str.toCharArray();

String newstring;

while(i<string.length){
if(string[i]==' '){
spacenumber++;
}
oldnumber++;
i++;
}
int newnumber = oldnumber+spacenumber*2;
char newstr[] = new char[newnumber];
int Poldnumber = oldnumber-1;
int Pnewnumber = newnumber-1;
while((Pnewnumber>=Poldnumber)&&(Pnewnumber>=0)){
if(string[Poldnumber]!=' '){
newstr[Pnewnumber--] = string[Poldnumber];
}
else {
newstr[Pnewnumber--] = '0';
newstr[Pnewnumber--] = '2';
newstr[Pnewnumber--] = '%';
}
Poldnumber--;
}
newstring = String.valueOf(newstr);
return newstring;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐