請實現一個函數,將一個字符串中的空格替換成“%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();
}
}