面试题5:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题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;
    }
}

 

以上是关于面试题5:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。的主要内容,如果未能解决你的问题,请参考以下文章

面试题5:替换空格

面试题5:替换空格

面试题5:替换空格

面试题002字符串替换空格精妙解法

剑指offer字符串面试题 替换空格

剑指offer字符串面试题 替换空格