参数为String型,利用StringBuffer

public String replaceSpace(String s) {
        if(s.length() == 0)
            return "";
        StringBuffer sb = new StringBuffer();
        int n = s.length();

        for(int i = 0; i < n; i++){
            if(s.charAt(i) == ' ')
                sb.append("%20");
            else sb.append(s.charAt(i));
        }
        return sb.toString();       
    }

参数为StringBuffer型

/**
    不使用StringBuffer,在原来的上面进行扩容
    */
    public String replaceSpace(StringBuffer s) {
        if(s.length() == 0)
            return "";
        int cnt = 0; //空格的数量
        int oldLen = s.length();
        for(int i = 0; i < oldLen; i++){
            if(' ' == s.charAt(i))
                cnt++;
        }
        int newLen = oldLen+cnt*2;  //字符串的新长度
        int newIndex = newLen-1;  //扩容后的字符串的最后一个位置
        s.setLength(newLen);

        for(int i = oldLen-1; i >= 0; i--){
            if(' ' == s.charAt(i)){
                s.setCharAt(newIndex--,'0');
                s.setCharAt(newIndex--,'2');
                s.setCharAt(newIndex--,'%');
            }else{
                s.setCharAt(newIndex--,s.charAt(i));
            }
        }
        return s.toString();

    }