替换空格---剑指Offer(Java版)

版权声明:转载请点赞,当然附上原文链接也很不错 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即可.

猜你喜欢

转载自blog.csdn.net/m0_37961948/article/details/88371266