《劍指offer:Java版》 請實現一個函數,將一個字符串中的每個空格替換

描述:

請實現一個函數,將一個字符串中的每個空格替換成“%20”。 例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。

實現:

package com.ma.offer;
public class Demo02 {
    /**
     * 請實現一個函數,將一個字符串中的每個空格替換成“%20”。
     * 例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。
     */

    public static String replaceSpace(StringBuffer str) {
        if (str != null && str.length() > 0) {
            char[] old = new char[str.length()];
            for (int i = 0; i < str.length(); i++) {
                old[i] = str.charAt(i);
            }
            int num = 0;
            for (int i = 0; i < str.length(); i++) {
                if (str.charAt(i) == ' ') {
                    num++;
                }
            }
            char[] chars = new char[str.length() + num  * 2];
            int m = str.length() - 1;
            int n = str.length() + num  * 2 -1;

            while (m >= 0 && n >= 0) {
                if (str.charAt(m) == ' ') {
                    chars[n--] = '0';
                    chars[n--] = '2';
                    chars[n--] = '%';
                } else {
                    chars[n--] = old[m];
                }
                m--;
            }
            return new String(chars);
        }

        return null;
    }
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer("we a r e happy");
        System.out.println(replaceSpace(stringBuffer));
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章