我收到错误
java.lang.ArrayIndexOutOfBoundsException:20
我不确定我是假设有一个while循环还是打破它所以它不会超过数组长度。我看到其他帖子说明为什么会发生这种情况,但我没有看到任何显示如何修复它。请帮忙!
export PATH="<path to qmake>":$PATH
答案 0 :(得分:0)
你必须改变这个:
for (int i = 0; i <= run.length; i++){
到此:
for (int i = 0; i < run.length; i++){
或者
for (int i = 0; i <= run.length-1; i++){
你开始循环从0开始抛出你的数组,所以你应该停在length-1
而不是length
你的数组和索引应该是这样的:
Values [1, 2, 3, 4, 5, 6]
Indexes [0, 1, 2, 3, 4, 5]
修改强>
您尝试比较以下值和之前的值,因此我认为您需要制作类似的内容(不需要while()
循环,并确保从1
开始循环并停止在lenght -2
)(int i = 1; i < run.length - 1; i++)
中,所以您的程序应如下所示:
for (int i = 1; i < run.length - 1; i++) {
if (run[i] == run[i - 1] && run[i] == run[i + 1]) {
System.out.print(run[i]);
}
if (run[i] != run[i - 1] && run[i] == run[i + 1]) {
System.out.print("(" + run[i]);
}
if (run[i] == run[i - 1] && run[i] != run[i + 1]) {
System.out.print(run[i] + ")");
}
if (run[i] != run[i - 1] && run[i] == run[i + 1]) {
System.out.print(run[i]);
}
}
答案 1 :(得分:0)
for (int i =0;i<=run.length;i++){
中的<
应该是for (int i= 0;i<run.length;i++)
,就像int[20]
中的0
一样。
此外,在19
中,索引为run[20]
到while(run[i]<= run[20]){
// Error ---------^^^^
(包括),因此您无法在此处使用run
:
run[19]
marking
中的最后一项是run
。
进一步说明:while(run[i]<= run[run.length - 1]){
不应该假设它知道 Runnable yourThread = new YourThreadClass() ;
ExecutorService executorService = Executors.newSingleThreadExecutor() ;
executorService.execute(yourThread);
execytorService.shutdown();
中有多少条目,所以它应该是:
set connectdb = New ADODB.Connection
答案 2 :(得分:0)
替换for (int i =0;i<=run.length;i++)
同
标记方法中for (int i =0;i<run.length;i++)
。
因为任何数组的最后一个索引都是length - 1。