question:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
resolution1:定义一个新的字符串,遇到了空格就添加“%20”,否则就copy原来的字符,这里需要注意的是判断是否等于空格的时候是字符的比较而不是字符串的比较,所以这里的空格应该用单引号而不是双引号。
/**
* 运行时间:25ms
* 占用内存:9492k
* @param str
* @return
*/
public String replaceSpace(StringBuffer str) {
StringBuffer newStr = new StringBuffer();
for(int i = 0; i< str.length(); i++){
char c = str.charAt(i);//不能写成str[i],因为stringbuffer是一个字符串对象,除非转为tocharArray数组就可以
char space = ' ';//注意这里的空格是字符不是字符串
if(space == c){
newStr.append("%20");//stringbuffer添加用append不用add
}else newStr.append(str.charAt(i));
}
return newStr.toString();//stringbuffer转为string形式
}