替換空格
- 2021 年 9 月 23 日
- 筆記
- JAVA, leetcode, String, StringBuffer
請實現一個函數,把字元串 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()