《剑指offer》 字符串第一题:替换空格

题目描述:

        请实现一个函数,将一个字符串中的每个空格替换成“%20”。

        例如:当字符串为“We Are Happy",经过替换后为"We%20Are%20Happy"。

解题思路:

        本题有两种思路。

一种是创建一个新的并且为空的字符串来继承原字符串,一遇到空格则立马替换为%20,其他情况则继承原字符串的内容。

public String instead(String s)
    {
        if(s==null)
            return null;
        String ch="";
        for(int i=0;i

另一张方法则是,找到字符串中空格的个数*2+s.length(),是替换完后总共的长度,以此创建一个新的字符数组,完成替换。

public String instead(String s)
    {
        if(s==null)
            return null;

        int c=0;
        for(int i=0;i=0)
        {
            if(s.charAt(p1)==' ')
            {
                ch[p2]='0';
                ch[p2-1]='2';
                ch[p2-2]='%';
                p2=p2-3;
            }
            else {
                ch[p2]=s.charAt(p1);
                p2--;
            }
            p1--;
        }
        return new String(ch);
    }

测试类:

public static void main(String[] args) {
        Stringlcz l=new Stringlcz();
        String s="We Are Happy";
        System.out.println(l.instead(s));
    }

运行结果:

你可能感兴趣的:(算法,java,数据结构)