用stringbuffer替換字符串的空格

用stringbuffer替換字符串的空格

問題:

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

思路:

  • 注意題目是替換原來字符串
  • 1.替換字符串2.先確定原字符串中空格數3.設置字符串長度4.從後往前遍歷,進行替換

解答:

public class Solution {
    public String replaceSpace(StringBuffer str) {
    int lengthOld=str.length();
    int spaceNum=0;
    for(int i=0;i<lengthOld;i++) {  //空格個數
    	if(str.charAt(i)==' ') {   //單引號表示字符
    		spaceNum++;
    	}
    }
    int lengthNew=lengthOld+spaceNum*2;
    str.setLength(lengthNew);
    int indexOld=lengthOld-1;
    int indexNew=lengthNew-1;
    for(;indexOld>=0 && indexOld<lengthNew;--indexOld) {   //&& 短路與  從後往前遍歷
    	if(str.charAt(indexOld)==' ') {  
    		str.setCharAt(indexNew--, '0');
    		str.setCharAt(indexNew--, '2');
    		str.setCharAt(indexNew--, '%');
    	}else {
    		str.setCharAt(indexNew--, str.charAt(indexOld));
    	}
    }
    return str.toString();
    }
}

 

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