Java数组越界错误:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 15

今天在学习Java时遇到了一个题,给你一个数组,让你得到该数组中数字的个数。一接触这个题的时候我第一想法是将这个数组通过Arrays类的toString()方法转化为String字符串,然后通过对下标的处理得到数字的个数,但是发现String类对象并不能够直接处理下标。

然后我又将String类对象通过toCharArray()方法转化为字符数组,因为数组各个位置均会初始化为0,然后遍历该字符数组得到结果。

public static void main(String[] args){
        int[] scores = {1, 2, 3, 4, 5};
        String l = Arrays.toString(scores);
        //char list[] = new char[100];
        char[] list = l.toCharArray();
        int number = 0;
        for(int i = 0; list[i] != 0; i++)
        {
        	if(list[i] == ' ')
        	{
        		number++;
        	}
        }
        System.out.println(number);
    }
提示:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 15
	at kick.HelloWorld.main(HelloWorld.java:12)
这是数组越界的错误信息,表示数组list的下标在遍历过程中到了15(实际上的16),而在初始化时只申请了15个位置。

联系我后面的提示,我得知for循环的终止判断出了问题,因这个字符数组的内存申请范围是精确的,后面没有多余的空间,也就不存在初始化为0的数组位置了。


你可能感兴趣的:(Java数组越界错误:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 15)