数组下标越界异常怎么解决?

Python017

数组下标越界异常怎么解决?,第1张

记得循环的时候,下标是从0开始到N-1,打印出遍历数组的索引十分有帮助,注意一下它的循环条件,也可以加断点。

出现此类问题的原因有多方面。总结一下我所理解的,数组的长度决定了它所能装载的数据的量。还有就是数组计数是从零开始的。例如:当Srring arr[]==new String[6]如果要往里输入名字的话就只能输入六个,多了就是下标越界。

另外数组一般都是与for循环结合起来用,所以用的的时候要注意一下它的循环条件。数组下标越界异常:Java.lang.ArrayIndexOutOfBoundsException,这是一个非常常见的异常,从名字上看是数组下标越界错误,解决方法就是查看为什么下标越界。这种错误就是字符串索引越界。

当处理数组越界时,打印出遍历数组的索引十分有帮助,这样我们就能够跟踪代码找到为什么索引达到了一个非法的值。

所谓的数组越界,简单地讲就是指数组下标变量的取值超过了初始定义时的大小,导致对数组元素的访问出现在数组的范围之外,这类错误也是 C 语言程序中最常见的错误之一。

如果您使用的是原始类型,如int,长,字符,短,字节,浮点型,双和字符数组字符串数组,数组的一次声明的大小是固定的,不能元素的主题下,唯一可以删除某些底层的元素被改变的重新分配

一个[指数] =新的价值。

如果作为容器类,如列表的数组,ArrayList的是从集合继承。该接口定义了指定的元素集合

的单个实例中删除的布尔删除(对象o)。那么它的所有子接口也有这种方法。

哈?你的程序好复杂,我都没看明白

BigDecimal直接设置小数并设置四舍五入的方式不就好了吗?

public static void main(String[] args) {

BigDecimal b0 = new BigDecimal("123")

BigDecimal b1 = new BigDecimal("1234")

BigDecimal b2 = new BigDecimal("12345")

BigDecimal b3 = new BigDecimal("123456")

BigDecimal b4 = new BigDecimal("1234567")

BigDecimal b5 = new BigDecimal("12345678")

BigDecimal b6 = new BigDecimal("123.45678")

BigDecimal b7 = new BigDecimal("123.45678")

System.out.println(b0.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP))

System.out.println(b1.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP))

System.out.println(b2.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP))

System.out.println(b3.divide(new BigDecimal(10000), 2, RoundingMode.DOWN))

System.out.println(b4.divide(new BigDecimal(10000), 3, RoundingMode.HALF_UP))

System.out.println(b5.divide(new BigDecimal(100000), 3, RoundingMode.DOWN))

System.out.println(b6.setScale(2, RoundingMode.HALF_UP))

System.out.println(b7.setScale(2, RoundingMode.DOWN))

}

其中,setScale即设置小数位数是多少,RoundingMode表示四舍五入的方式,常用的就是HALF_UP表示四舍五入,DOWN表示直接舍掉,还有些其他的你查一下RoundingMode就行。

运行结果: