版权声明:转载请点赞,当然附上原文链接也很不错 https://blog.csdn.net/m0_37961948/article/details/88371266
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
对Java语言不太熟悉的同学可能会使用String,但是因为String是不可变的,每次对其进行+-操作,都将新生成一个String,会造成空间和时间的双重浪费。Java在这种情况下建议使用 StringBuilder类不断的进行append()操作.
public String replaceSpace(StringBuffer str) {
if(str == null){
return null;
}
// 转成char[],虽然多用了些空间,但是[] 比charAt快得多的多
char[] s = str.toString().toCharArray();
StringBuffer res = new StringBuffer();
// 不可以使用forEach,因为foreach不关心顺序,但顺序对本题来说还是十分有用的。
for (int i = 0; i < s.length; i++) {
if(s[i] == ' '){
res.append("%20");
}else {
res.append(s[i]);
}
}
return res.toString();
}
对于C/C++,要考虑的东西比较多,但是Java直接使用造好的轮子StringBuilder即可.