劍指offer 替換空格 java代碼

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

思路:
題目提供的Stringbuffer :需要需要先遍歷一次用一個整型數組記錄所有空格字符的位置,然後逆序替換空格字符爲%20即可

如果題目提供char[]:同樣先遍歷數組尋找空格字符的位置,然後做逆序替換。也可以便利一次char[] 用一個int 變量記錄空格字符的數目,然後後逆序替換的時候,先用一個變量i記錄最後一個字符的位置,再用變量j記錄最後一個字符將要移動到的位置,即char數組長度+替換字符後組要增加的長度,然後通過從後往前依次移動替換空格即可。

public class Solution {
    public static String replaceSpace(StringBuffer str) {
        if (str.equals(null)) {
            return null;
        }
            char[] s = str.toString().toCharArray();
            int[] record = new int[str.length() + 1];
            int j = 0; 
            for(int i = 0;i < s.length;i++)
                if (s[i] == ' ') {
                    j++;
                    record[j] = i;
                }
            for(;j > 0;j--) {
                str.replace(record[j],record[j]+1,"%20");
            }

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