如何避免检查字符串数组最后一个元素以防止ArrayIndexOutOfBoundsException
解决数组遍历检查相邻元素时的越界问题
这问题太常见啦!核心就是控制循环的终止边界,别让索引i跑到数组的最后一个位置就行,这样i+1就永远不会超出数组的有效范围。
为什么会抛出ArrayIndexOutOfBoundsException?
数组的索引范围是0到arr.length - 1,当你让i等于最后一个索引(也就是arr.length - 1)时,i+1就等于arr.length,这已经超出了数组的最大有效索引,所以JVM会直接抛出越界异常。
具体解决方案
只需要把循环的终止条件改成i < arr.length - 1,这样i的最大值就是arr.length - 2,对应的i+1就是数组的最后一个索引arr.length - 1,完美覆盖所有需要检查的相邻元素对,同时不会触碰到越界的情况。
示例代码如下:
String[] arr = {"first", "second", "third", "first", "second"}; // 循环终止条件改为 i < arr.length - 1 for (int i = 0; i < arr.length - 1; i++) { if (arr[i].equals("first") && arr[i + 1].equals("second")) { // 执行你的业务逻辑 System.out.println("找到连续的first和second组合,索引位置:" + i + " 和 " + (i+1)); } }
额外的边界情况处理
如果数组长度小于2(比如空数组或者只有1个元素),arr.length - 1会是0或者负数,循环的条件i < arr.length -1会直接不成立,循环根本不会执行,自然也不会出现任何异常,这个方案能自动处理这类极端情况。
内容的提问来源于stack exchange,提问作者IMBABOT
相关产品推荐
相关产品推荐

