【劍指Offer學習】【面試題4 : 替換空格】【思路】
阿新 • • 發佈:2018-12-20
題目:
請實現一個函式,將一個字串中的每個空格替換成“%20”。例如,當字串為We Are Happy,則經過替換之後的字串為We%20Are%20Happy。
思路:
- 遍歷的方向兩邊皆可。
- 若從後往前遍歷,新的字串需要反轉。
- 用 String 類的方法判斷字串各位置對應的字元是否為空格。
知識點:
- charAt() 方法: 返回此序列中指定索引處的 char 值。即返回對應的【字元】。
- String.valueOf() 方法:返回引數對應的字串表示形式。即將此處的【字元】轉為【字串】。
- append() 方法:將對應引數的字串表示形式追加到此序列。即新增至新的字串中。
程式碼:
public class Demo { public static void main(String[] args) { StringBuffer string = new StringBuffer("we are happy"); Demo demo = new Demo(); System.out.println(demo.replaceSpace(string)); } public String replaceSpace(StringBuffer str) { // 判斷輸入是否合法 if (str == null) return null; // 建立可變字元序列接收新的字串 StringBuffer sb = new StringBuffer(); for (int i = str.length() - 1; i >= 0; i--) { if (String.valueOf(str.charAt(i)).equals(" ")) { // 返回此序列中指定索引處的 char 值。 sb.append("02%"); }else { sb.append(str.charAt(i)); } } return sb.reverse().toString(); // 將此字元序列用其反轉形式取代。 } }