public class StringReplace {
public static void main(String[] args) {
String str = "a b c d";
char[] ch = str.toCharArray();
stringReplace(ch);
System.out.println(ch);
}
//将左边区域空格替换为“%20”
public static void stringReplace(char[] chs){
if(chs == null || chs.length == 0){
return;
}
int len = 0;
int num = 0;
for(len = 0; len < chs.length && chs[len] != 0; len++){
if(chs[len] == ' '){
num++;
}
}
int j = len + 2 * num - 1;
for(int i = len - 1; i > -1; i--){
if(chs[i] != ' '){
chs[j--] = chs[i];
}
else {
chs[j--] = '0';
chs[j--] = '2';
chs[j--] = '%';
}
}
}
}
会报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 18
at algorithm_demotest.StringReplace.stringReplace(StringReplace.java:33)
at algorithm_demotest.StringReplace.main(StringReplace.java:12)