您的位置:首页 > 编程语言 > Java开发

字符串的空格替换

2016-05-19 15:59 375 查看
有一个字符串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--;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java