为什么使用while循环会抛出数组越界异常

来源:2-6 Java 中的 StringBuilder 类的常用方法

LBJHan

2019-12-31 09:45

        int i = str.length();
       while(i>=0){
               if(i<=0) {
                       System.out.println("i ----- " + i);
               }
               else {
                   i-=3;
                   str.insert(i, ',');
               }

}//抛出ArrayIndexOutOfBoundsException



写回答 关注

3回答

  • 慕无忌6091582
    2021-06-03 16:18:06

    int len = str.length();

            while(len>=3){

                len = len - 3;

                str.insert(len,",");

            }


  • Zzz39
    2020-03-06 15:09:06
    int i = str.length();
    while (i >= 0) {
        if (i >= 3) {
            i -= 3;
            str.insert(i, ',');
        } else {
            System.out.println(str);
            break;
        }
    }

    改下

  • 黑巧不加糖
    2020-01-01 19:34:19

    当while判断的i比3小时在判断语句的else内  :  语句(i-=3)则会出现负值,此时,语句   str.insert(i, ',')  找不到对应得数组下标,系统出现数组越界异常提示。

    改正:把第3行的代码  if(i<=0)   改为  if(i<=3)即可解决越界问题。

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409779 学习 · 4339 问题

查看课程

相似问题