替换字符串空格 - Java - StringBuffer
生活随笔
收集整理的這篇文章主要介紹了
替换字符串空格 - Java - StringBuffer
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問題描述:
請實(shí)現(xiàn)一個(gè)函數(shù),將一個(gè)字符串中的空格替換成“%20”。例如,當(dāng)字符串為We Are Happy.則經(jīng)過替換之后的字符串為We%20Are%20Happy。
基本思路:
逆序替換,降低時(shí)間復(fù)雜度
實(shí)現(xiàn)方案:
- String一旦初始化,無法改變。
- 使用StringBuffer,是因?yàn)榕?途W(wǎng)的模板。
- 實(shí)際使用中,單線程建議是用StringBuilder,因其無鎖,效率高。
- 多線程中,使用StringBuffer。
- 兩者的內(nèi)置函數(shù)是相同的
思考:
- 在原有字符串上更改,還是新建字符串(原有的話,需要重新設(shè)置長度setLength())
- 不考慮使用現(xiàn)有replace()
代碼:
public static String replaceSpace(StringBuffer str){int length = str.length();int spacenum = 0;//統(tǒng)計(jì)空格字符個(gè)數(shù)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();}轉(zhuǎn)載于:https://www.cnblogs.com/gleesu/p/6750625.html
總結(jié)
以上是生活随笔為你收集整理的替换字符串空格 - Java - StringBuffer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: webpack为什么加载不了css?
- 下一篇: 第十章—DOM(0)—NODE类型