将字符串中的空格替换为%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;
}
}
因此尝试从字符串后面往前面遍历,这样事先计算出需要的字符位数,再将%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;
}
}
相关文章推荐
- 用%20替换字符串中的空格
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- 将一个字符串中的空格替换为“%20”(java)
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- 9.1数组与字符串(三)——将字符串中的空格全部替换为“%20”
- 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 替换空格_把字符串里面的空格替换成%20
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 编写一个方法,将字符串中的空格全部替换为“%20”
- 面试4之字符串中的空格全部替换为“%20”
- 将字符串中的空格替换为%20
- 替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”
- 替换字符串中空格为”%20“
- 换掉字符串中的空格,将空格替换成%20
- 实现函数替换字符串中空格为%20.
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- 《剑指offer》-将一个字符串中的空格替换成“%20”
- 替换空格-请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 《剑指Offer》替换空格(将字符串中的空格替换为%20)