用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();
}
}