数组中空格替换成“%20”,原数组为:a b c d ;总共八位,替换后,一个空格多出来两位,最后长度应该是16位,现在代码输出长度是24位,为什么?导致输出的数组包含了原来的就数组,怎么样才能只输出新数组
public class L3 {
public static void main(String[] args) {
char[] arr=new char[100];
arr[0]='a';
arr[1]=' ';
arr[2]='b';
arr[3]=' ';
arr[4]='c';
arr[5]=' ';
arr[6]='d';
arr[7]=' ';
find1(arr,8);
}
public static void find1(char[] arr,int length) {
int count=0;
for(int i=0;i<length;i++) {
count++;
}
count*=2;
count+=length;
int p1=length-1;
int p2=count-1;
while(p1>=0) {
if (arr[p1] == ' ') {
arr[p2--] = '0';
arr[p2--] = '2';
arr[p2--] = '%';
}
else {
arr[p2--]=arr[p1];
}
p1--;
}
System.out.println(count);
for (int i=0;i<count;i++) {
System.out.print(arr[i]);
}
}
}