java - 我不知道如何解决这个“ArrayIndexOutOfBoundsException”错误
问题描述
我创建了嵌套循环来在我的字符串数组中实现整数:
int ı = 0;
String[] haha = new String[sizeFinder(numbers)];
for (int q = 0; q < sizeFinder(numbers);) {
for (ı = Integer.parseInt(numara[q]);; ı = Integer.parseInt(numara[q])) {
haha[q] = ofanamof(Arrays.toString(convertDectoB(ı, sizeFinder(numbers))));
q++;
}
}
这是问题所在:在这种情况下,“sizeFinder(numbers)”等于 3。在第二个 for 循环中,我将“q”值一一增加,以实现值到“haha [q]”数组中。但最终“q”为 3,代码中没有“numara[3]”值。它给出错误:java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
我怎么能解决这个问题?我怎样才能在 2 处停止“q”值?
解决方案
似乎您对编程很陌生,所以我建议您首先正确理解 for 的工作原理。
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
那是 for from oracle 的官方文档。
在 for 您使用的类型中,您应该描述 3 个参数:
for ([1]; [2]; [3]) {
your code;
}
[1]循环变量的初始化,例如“int i = 0”
[2] 终止条件,直到循环迭代的时间(每次执行括号 { } 内的代码时都会检查此条件)
[3] 应该如何修改循环变量,例如“++i”或“--i”(增加和减少1个单位的i)。每次括号内的代码完成时,它将在 [2] 之后立即执行。
希望能帮助到你!
推荐阅读
- windows - 我可以在 Windows 机器上运行的 Ubuntu VM 上运行 TensorFlow GPU 吗?
- php - 如何使用 Php 和 MSSQL 获取具有多个服务器名称的 mssql 中的所有数据
- c# - Window.Left is wrong when moving a maximized Window with Windows + Shift + Arrow Keys
- unity3d - 程序生成的带孔网格
- regex - 在 bash 中使用两个捕获来解析字符串
- docker - kubernetes 使用 tar docker 映像部署
- azure - SQL Azure 中审核与诊断设置之间的区别
- gsm - 使用 GSM 7600E 开发物联网设备
- kubernetes - 指定命名空间时,Kubernetes Pod 无法联系另一个 pod
- vue.js - 测试在该表单上使用 veevalidate 的表单