日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

替换字符串空格 - Java - StringBuffer

發(fā)布時(shí)間:2025/7/25 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 替换字符串空格 - Java - StringBuffer 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問(wèn)題描述:

請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),將一個(gè)字符串中的空格替換成“%20”。例如,當(dāng)字符串為We Are Happy.則經(jīng)過(guò)替換之后的字符串為We%20Are%20Happy。

基本思路:

逆序替換,降低時(shí)間復(fù)雜度

實(shí)現(xiàn)方案:

  • String一旦初始化,無(wú)法改變。
  • 使用StringBuffer,是因?yàn)榕?途W(wǎng)的模板。
  • 實(shí)際使用中,單線程建議是用StringBuilder,因其無(wú)鎖,效率高。
  • 多線程中,使用StringBuffer。
  • 兩者的內(nèi)置函數(shù)是相同的

思考:

  • 在原有字符串上更改,還是新建字符串(原有的話,需要重新設(shè)置長(zhǎng)度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的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。