仗剑天涯__小法法 2017-08-16 03:35 采纳率: 50%
浏览 820

在练习一个字符串替换的例子,遇到下面一个问题,不知道啥情况,求教!!!!

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)

  • 写回答

5条回答 默认 最新

  • Tsui丶 2017-08-16 03:41
    关注

    java.lang.ArrayIndexOutOfBoundsException: 18 数组下标越界错误
    chs[j--] 这个j--超出了数组长度

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题