码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2017-12-10 17:09:20      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:rgs   color   ==   bsp   space   log   null   字符   eof   

请实现一个函数,将一个字符串中的空格替换成“%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。

标签:rgs   color   ==   bsp   space   log   null   字符   eof   

原文地址:http://www.cnblogs.com/Allen-win/p/8017054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!