替换空格

1、题目

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

2、charAt方式

(1)将取出的每一个字符转换为字符串,运用字符串的equals方法对字符进行判断是否为空格

public class Solution {
    public String replaceSpace(StringBuffer str){
        StringBuffer stringbuffer=new StringBuffer("");
        for(int i=0;i<str.length();i++){
            char c=str.charAt(i);
            if(String.valueOf(c).equals(" ")){
                stringbuffer.append("%20");
            }else{
                stringbuffer.append(str.charAt(i));
            }
        }
        return stringbuffer.toString();
    }
    public static void main(String [] args){
        Solution solution=new Solution();
        StringBuffer stringbuffer=new StringBuffer("We Are Happy.");
        solution.replaceSpace(stringbuffer);
    }
}

 (2)将取出的每一个字符直接与ASCII表空格的十进制进行比较判断

public class Solution {
    public String replaceSpace(StringBuffer str){
        StringBuffer stringbuffer=new StringBuffer("");
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)==32){
                stringbuffer.append("%20");
            }else{
                stringbuffer.append(str.charAt(i));
            }
        }
        return stringbuffer.toString();
    }
    public static void main(String [] args){
        Solution solution=new Solution();
        StringBuffer stringbuffer=new StringBuffer("We Are Happy.");
        solution.replaceSpace(stringbuffer);
    }
}

 使用此方法虽然能够提高算法的效率,但是要对ASCII码表掌握的比较熟练

3、replaceAll方法

public class Solution {
    public String replaceSpace(StringBuffer str){
        return str.toString().replaceAll(" ","%20");
    }
    public static void main(String [] args){
        Solution solution=new Solution();
        StringBuffer stringbuffer=new StringBuffer("We Are Happy.");
        solution.replaceSpace(stringbuffer);
    }
}

 直接调用java的方法替换掉所有的空格,虽然能够通过测试,但是没有用到算法思想,不建议使用

每个人都会有一段异常艰难的时光 。 生活的压力 , 工作的失意 , 学业的压力。 爱的惶惶不可终日。 挺过来的 ,人生就会豁然开朗。 挺不过来的 ,时间也会教你 ,怎么与它们握手言和 ,所以不必害怕的。 ——杨绛
原文地址:https://www.cnblogs.com/zhai1997/p/13562793.html