请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
题解:
本体思路不难,就是遍历,找出空格,然后把空格替换为字符串"%20",难点在于如何选择操作的字符串类型,以及如何运用诸多库函数。
偷懒解法:
运用String类的replace()方法,能将字符串内所有旧的字符串替换为新的字符串。
public String replace(CharSequence target, CharSequence replacement)
代码如下
public String replaceSpace(String s) { String str = new String(); str = s.replace(" ","%20"); return str; }
常规解法
public String replaceSpace(String s) { int length = s.length(); StringBuffer str = new StringBuffer(); for (char c : s.toCharArray()) { if(c == ' ') str.append("%20"); else str.append(c); } return str.toString(); }
注意事项:1.构建了一个StringBuffer类,用来变更字符串,因为String类是不可变的,每赋予新值就会重新开辟一块内存空间,没修改一次就要占用空间,而StringBuffer可变,在原有对象存储地址上连续操作,通过append()函数往末尾添加字符。
2.toString()方法,StringBuffer类的toString()方法是一种内置方法,用于返回表示StringBuffer类包含的数据的字符串。创建并初始化一个新的String对象,以从该StringBuffer对象获取字符序列,然后由toString()返回String。 对StringBuffer对象的的后续更改不会影响String的内容。
public abstract String toString()