替换空格为%20

来源:互联网 发布:化学专业词典软件 编辑:程序博客网 时间:2024/05/16 04:45

1.题目
这里写图片描述
2.理解
可以从前往后依次遍历其内容,如果为’ ‘字符,做替换,但是每次后面的数据都要移动,使其时间复杂度变大,从前面不行,我们就可以从后面,改变移动的次数;
3.代码

package edu.liangman.offer;/** * Created by lm on 2016/12/31. */public class ReplaceSpace {    //定义一个替换空格的方法    public static String replaceSpace(String src){        char[] chars = src.toCharArray();        int counter = 0;        for(int i=0;i<chars.length;i++){            if(chars[i]==' ')                ++counter;        }        int len = chars.length+2*counter;        char[] newarr = new char[len];        System.arraycopy(chars,0,newarr,0        ,chars.length);        int j = chars.length-1;        int k = newarr.length-1;        while(j>=0&&j!=k){            if(newarr[j]==' '){               newarr[k--] = '0';               newarr[k--] = '2';               newarr[k--] = '%';            }else{                newarr[k--]=newarr[j];            }             j--;        }        return new String(newarr);    }    public static void main(String[] args){        String str = "   ";        System.out.println(replaceSpace(str));    }}

4.运行结果
这里写图片描述

0 0