請實作一個函數,將一個字串中的空格替換成「%20」。例如,當字串為We Are Happy.則經過替換後的字串為We%20Are%20Happy。
逆序替換,降低時間複雜度
String一旦初始化,無法改變。
使用StringBuffer,是因為牛客網的模板。
實際使用中,單執行緒建議是用StringBuilder,因為其無鎖,效率高。
多執行緒中,使用StringBuffer。
兩者的內建函數是相同的
在原有字串上更改,還是新建字串(原有的話,需要重新設定長度setLength())
不考慮使用現有replace()
public static String replaceSpace(StringBuffer str){ int length = str.length(); int spacenum = 0; //统计空格字符个数 for(int i=0;i<length;i++){ if(str.charAt(i) == ' ') spacenum++; } int lengthNew = length + spacenum*2; str.setLength(lengthNew); int index = length-1; int indexNew = lengthNew-1; for(;index>=0;index--){ if(str.charAt(index) == ' '){ str.setCharAt(indexNew--, '0'); str.setCharAt(indexNew--, '2'); str.setCharAt(indexNew--, '%'); } else{ str.setCharAt(indexNew--, str.charAt(index)); } } return str.toString(); }
好了,本文就介紹到這裡,歡迎大家多多指教。有興趣的請學習php中文網線上java影片教學
以上是java實作替換字串中的空格思路和程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!