0

我正在使用两个数组绘制字母“S”。第一个数组用# 填充(字母所在的任何地方都会有一个空格)。第二个数组是每个空间的位置。

该代码对我来说看起来不错,但我遇到了一个不熟悉的运行时错误:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 178 at Letter.main(Letter.java:20)。这是我的代码/任何关于为什么这不起作用的输入将不胜感激。

public class Letter {
   public static void main (String [] args) {
   char [] array = new char [150];
       for (int index = 0; index < array.length; index ++) 
        {
          array [index] = '#';
        }
    int [] indexNumbers = {0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,
    60,70,71,72,73,74,75,76,77,78,79,89,99,109,119,129,139,140,
    141,142,143,144,145,146,147,178,149};
       for (int i = 0; i < indexNumbers.length; i++) 
        {
           array [indexNumbers[i]] = ' ';
        }
        for (int index = 0; index < array.length; index ++)
       {
           if (index % 10 == 0 && index > 0) 
             System.out.println();
          System.out.print (array[index]);
        }
   }
}

编辑:非常感谢大家。多么可笑的错误!干杯!

4

3 回答 3

1

你有一个错字int [] indexNumbers

178应该是148

您得到的异常信息非常丰富:

java.lang.ArrayIndexOutOfBoundsException:178

如果还是看不懂,使用调试器对你有很大帮助。

于 2013-04-22T16:33:49.533 回答
0

您的 IndexNumber 为 178,但您的“数组”仅达到 149...

于 2013-04-22T16:37:04.720 回答
0

将数组中的 178 更改为 148 ;-)

于 2013-04-22T16:34:34.020 回答