面試題4:替換空格

題目描述

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

代碼實(shí)現(xiàn)

public class Solution {
    public String replaceSpace(StringBuffer str) {
        //先計(jì)算空格的數(shù)量
        int blankNum = 0;
        int len1 = str.length();
        for(int i = 0;i < len1;i++){
            if(str.charAt(i) == ' ')
                blankNum++;
        }
        //擴(kuò)充str的長度
        int len2 = len1 + blankNum * 2;
        str.setLength(len2);
        //從后往前替換
        for(int i = len1-1,j = len2-1;i >= 0;i--){
            if(str.charAt(i) == ' '){
                str.setCharAt(j--,'0');
                str.setCharAt(j--,'2');
                str.setCharAt(j--,'%');
                if(--blankNum == 0) break;
            }else{
                str.setCharAt(j--,str.charAt(i));
            }
        }
        return str.toString();
    }
}

主要思路

1、從后向前移動(dòng),每個(gè)元素最多移動(dòng)一次
2、主要記住幾個(gè)api:length(),setLength(),charAt(i),setCharAt(i,'0')
3、代碼優(yōu)化:if(--blankNum == 0) break;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目要求 請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),將字符串中的每個(gè)空格替換成“%20”,例如輸入“we are family”替換成“we...
    小莊bb閱讀 280評(píng)論 0 0
  • 題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),把字符串中的每個(gè)空格替換成"20%"。例如輸入"We are happy",則輸出"We%2...
    qmss閱讀 321評(píng)論 0 0
  • 題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),把字符串中的每個(gè)空格替換成“%20”。例如輸入“We are happy”,則輸出“We%2...
    Felicia1993閱讀 119評(píng)論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,899評(píng)論 18 399
  • Spring Data JPA雖然大大的簡化了持久層的開發(fā),但是在實(shí)際開發(fā)中,很多地方都需要高級(jí)動(dòng)態(tài)查詢 Crit...
    龍歷旗閱讀 33,297評(píng)論 2 8

友情鏈接更多精彩內(nèi)容