题目:
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
例:
输入:s = "We are happy."
输出:"We%20are%20happy."
方法一:
该方法是我第一次就想到的,因为是刚学完正则表达式,所以尝试一下,该方法没有任何意义。
public String replaceSpace(String s) {
return s.replaceAll("\\s", "%20");
}
方法二:
该方法是看解析找到的,认为比较好的一个方法:即迭代字符串判断值,若为空格则改变。1
解析:
- 一个为字符串三倍长的char[]数组,用来存储替换后的字符串。
- 一个int变量,用来记录当前数组的光标。
- 循环迭代字符串取出传给一个临时字符变量。
- 判断该变量是否为空格,若是则在数组后三个中存入‘%20’,若不是,传入临时字符变量。
- 最后将数组变为字符串返回。
public String replaceSpace(String s) {
char[] cs = new char[s.length()*3];//字符串长三倍的数组
int size = 0;//记录数组的index
for(int i=0;i<s.length();i++){//循环取出字符串中数据,传入cs数组。
char c = s.charAt(i);
if(c == ' '){
cs[size++] = '%';
cs[size++] = '2';
cs[size++] = '0';
}else{
cs[size++] = c;
}
}
String str = new String(cs,0,size);
return str;
}
还有一种是用StringBuffer代替字符数组。