字符串的空格替换

来源:互联网 发布:金融it 编辑:程序博客网 时间:2024/05/16 05:34

有一个字符串a=”we are you.”空格替换%20,常规的解法是从前往后遍历,遇到空格,替换,然后后面的元素向后移2位,以此类推,这样的时间复杂度是n2,因为会有一部分数据重复移动多次,比较好的解决方案就是先求出替换完之后,最后一个元素的位置,然后从后向前处理字符串。

java代码:

private static void replace(char[] test,int space) {        if(test==null||space<=0) return ;        int count=0;        //统计有多少个空格        for(int i=0;i<test.length;i++){            if(test[i]==' ')                count++;            }        //替换完之后的的字符串的长度是原来的长度+2倍的空格数量        int len=2*count+test.length;        if(len>space) return;        //从后往左进行双指针移位,替换        int l1=test.length;        System.out.print(l1);        while(l1>=0&&len>l1){            if(test[l1]==' '){                test[len--]='0';                test[len--]='2';                test[len--]='%';                }            else {                test[len--]=test[l1];            }            l1--;        }       }
1 0
原创粉丝点击