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的数组位置了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值