面試題5:請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之后的字符串為We%20Are%20Happy。


請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之后的字符串為We%20Are%20Happy。

注意從后向前替換,使得時間復雜度為O(n);

public class Main {

    public static void main(String[] args) {
        Main main01=new Main();
        String str=main01.replaceSpace(new StringBuffer("old string"));
        System.out.println(str);
    }

    public String replaceSpace(StringBuffer str) {
        if(str==null || str.length()<0){
            return null;
        }
        //求字符串的實際長度和空格的數目
        int oldStrNum=0,blanckNum=0;
        int i=0;

        while(i<str.length()){
            oldStrNum++;
            if(str.charAt(i)==' '){
                blanckNum++;
            }
            i++;
        }

        int newStrNum=oldStrNum+2*blanckNum;

        int oldStrIndex =oldStrNum-1,
                newStrIndex=newStrNum-1;

        char newCharArr[]=new char[newStrNum];

        while(oldStrIndex>=0){
            if(str.charAt(oldStrIndex)==' '){
                newCharArr[newStrIndex--]='0';
                newCharArr[newStrIndex--]='2';
                newCharArr[newStrIndex--]='%';
            }else{
                newCharArr[newStrIndex--]=str.charAt(oldStrIndex);
            }
            oldStrIndex--;
        }
        String newStr=String.valueOf(newCharArr);

        return newStr;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM