首頁 >Java >java教程 >java實作替換字串中的空格思路和程式碼

java實作替換字串中的空格思路和程式碼

PHPz
PHPz原創
2017-04-23 14:53:412537瀏覽

問題描述:

請實作一個函數,將一個字串中的空格替換成「%20」。例如,當字串為We Are Happy.則經過替換後的字串為We%20Are%20Happy。

java實作替換字串中的空格基本想法:

逆序替換,降低時間複雜度

實作方案:

  • String一旦初始化,無法改變。

  • 使用StringBuffer,是因為牛客網的模板。

  • 實際使用中,單執行緒建議是用StringBuilder,因為其無鎖,效率高。

  • 多執行緒中,使用StringBuffer。

  • 兩者的內建函數是相同的

#思考:

  • 在原有字串上更改,還是新建字串(原有的話,需要重新設定長度setLength())

  • 不考慮使用現有replace()

java實作替換字串中的空格程式碼:

public static String replaceSpace(StringBuffer str){        
        int length = str.length();        int spacenum = 0;        
        //统计空格字符个数
        for(int i=0;i<length;i++){            if(str.charAt(i) == &#39; &#39;)
                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) == &#39; &#39;){
                str.setCharAt(indexNew--, &#39;0&#39;);
                str.setCharAt(indexNew--, &#39;2&#39;);
                str.setCharAt(indexNew--, &#39;%&#39;);
            }            else{
                str.setCharAt(indexNew--, str.charAt(index));
            }
        }        return str.toString();
    }

好了,本文就介紹到這裡,歡迎大家多多指教。有興趣的請學習php中文網線上java影片教學

以上是java實作替換字串中的空格思路和程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn