1. 程式人生 > >【劍指Offer學習】【面試題4 : 替換空格】【思路】

【劍指Offer學習】【面試題4 : 替換空格】【思路】

題目:

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

思路:

  1. 遍歷的方向兩邊皆可。
  2. 若從後往前遍歷,新的字串需要反轉。
  3. 用 String 類的方法判斷字串各位置對應的字元是否為空格。

知識點:

  1. charAt() 方法: 返回此序列中指定索引處的 char 值。即返回對應的【字元】。
  2. String.valueOf() 方法:返回引數對應的字串表示形式。即將此處的【字元】轉為【字串】。
  3. 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();	    // 將此字元序列用其反轉形式取代。
	}
}