To prove safety Offer 02 - replace spaces

Replace spaces

Time limit : 1秒
space constraints : 32768K
this question knowledge : 字符串
Title Description :

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

Solution one:

/**
*新建 StringBuffer 用于保存和拼接替换后的字符串结果
*其中 StringBuffer/StringBuilder 自带有 length()/charAt() 方法,因此不必转换成字符串再操作
*若某位字符为空格,则拼接"%20";否则,拼接原来字符。最后返回 buffer 对象拼接出的结果
*/
public class Solution {
    public String replaceSpace(StringBuffer str) {
        StringBuffer buffer = new StringBuffer();
        for(int i=0; i<str.length(); i++){
            char c = str.charAt(i);
            if(c == ' '){
                buffer.append("%20");
            }else{
                buffer.append(c);
            }
        }
        return buffer.toString();
    }
}

Answer two:

/**
*最简单的使用 String 类的字符串替换方法 replace()
*String.replace(String target, String replacement)
*/
public class Solution {
    public String replaceSpace(StringBuffer str) {
        return str.toString().replace(" ","%20");
    }
}

Solution three:

/**
*使用 String 类的正则匹配字符串替换方法 replaceAll()
*String.replaceAll(String regex, String replacement)
*/
public class Solution {
    public String replaceSpace(StringBuffer str) {
        // 正则表达式 \s 匹配任何空白字符,包括空格、制表符、换页符等等。
        // 经测试文本编辑器编写的Java文件的制表符等也会被匹配而转换,因此使用 \s 不太合理,此处单用空格符
        return str.toString().replaceAll(" ","%20");
    }
}

Guess you like

Origin www.cnblogs.com/jianminglin/p/11267469.html