替換空格

請實現一個函數,把字元串 s 中的每個空格替換成”%20″。

 

示例 1:

輸入:s = “We are happy.”
輸出:”We%20are%20happy.”

題解:

本體思路不難,就是遍歷,找出空格,然後把空格替換為字元串”%20″,難點在於如何選擇操作的字元串類型,以及如何運用諸多庫函數。

偷懶解法:

運用String類的replace()方法,能將字元串內所有舊的字元串替換為新的字元串。

public String replace(CharSequence target, CharSequence replacement)

程式碼如下

public String replaceSpace(String s) {
        String str = new String();
        str = s.replace(" ","%20");
        return str;
    }

 

常規解法

public String replaceSpace(String s) {
        int length = s.length();
        StringBuffer str = new StringBuffer();
        for (char c : s.toCharArray()) {
            if(c == ' ') str.append("%20");
            else str.append(c);
        }
        return str.toString();

    }

注意事項:1.構建了一個StringBuffer類,用來變更字元串,因為String類是不可變的,每賦予新值就會重新開闢一塊記憶體空間,沒修改一次就要佔用空間,而StringBuffer可變,在原有對象存儲地址上連續操作,通過append()函數往末尾添加字元。

2.toString()方法,StringBuffer類的toString()方法是一種內置方法,用於返回表示StringBuffer類包含的數據的字元串。創建並初始化一個新的String對象,以從該StringBuffer對象獲取字元序列,然後由toString()返回String。 對StringBuffer對象的的後續更改不會影響String的內容。

public abstract String toString()