替换字符串空格 - Java - StringBuffer
生活随笔
收集整理的這篇文章主要介紹了
替换字符串空格 - Java - StringBuffer
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述:
請實現一個函數,將一個字符串中的空格替換成“%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();}轉載于:https://www.cnblogs.com/gleesu/p/6750625.html
總結
以上是生活随笔為你收集整理的替换字符串空格 - Java - StringBuffer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: webpack为什么加载不了css?
- 下一篇: 第十章—DOM(0)—NODE类型