题目简述:
请实现一个函数,将一个字符串s中的每个空格替换成"%20"。例如:当字符串We Are Happy.则经过替换之后的字符串为We%20Are%20Happy.。
解决思路:
我们要想替换,就要先把字符串转化为单个字符。先创建一个临时数组,然后遍历字符串s的所有字符,如果不是空格就把该字符存进临时数组,是空格就添加三个字符’%’ ,‘2’, '0’到临时数组中,最后再将临时数组转化为字符串即可。
代码实现:
#创建一个临时数组
int length=s.length();
char[] arr=new char[length*3];
这里length*3的目的是防止字符串s全是空格引起数组空间不够
#遍历字符串s的所有字符,赋值给c,然后判断
int iarr=0;
for (int i = 0; i < length; i++) {
char c=s.charAt(i);
if (c == ' '){
arr[iarr++]='%';
arr[iarr++]='2';
arr[iarr++]='0';
}else{
arr[iarr++]=c;
}
}
#将临时数组转化为字符串
String newS=new String(arr,0,iarr);
#最后返回即可
return newS;
完整代码:
public class Test1 {
public static String replaceSpace(String s){
int length=s.length();
char[] arr=new char[length*3];
int iarr=0;
for (int i = 0; i < length; i++) {
char c=s.charAt(i);
if (c == ' '){
arr[iarr++]='%';
arr[iarr++]='2';
arr[iarr++]='0';
}else{
arr[iarr++]=c;
}
}
String newS=new String(arr,0,iarr);
return newS;
}
public static void main(String[] args) {
String s="I am Ethan";
System.out.println(replaceSpace(s));
}
}
运行结果: