java - 我有一个 ArrayIndexOutOfBoundsException 错误
问题描述
我的代码中有这个错误:
线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 70
在 Main.main(Main.java:72)
我不知道它为什么这样做?请帮忙。我提前谢谢你。我在几个网站上浏览了几个线程,但没有任何效果。我已经为此工作了一段时间。我知道 ArrayIndexOutOfBoundsException 是什么,但我试图弄清楚但我没有成功
这是代码:
import java.util.Scanner;
import java.util.Random;
public class Main
{
public static void main (String[] args)
{
Scanner myScanner = new Scanner (System.in);
Random myRandom = new Random();
int answer;
int definitionSelected = 0;
String[] code = new String[68];
String[] definition = new String[68];
int[] listedDefinition = new int[4];
int[] definitionUsed = new int[68];
int i;
int Size = 68;
int Other = 4;
double[] alpha = new double[68];
int count = 0;
code[0] = "10-0" ; definition[0] = "Disappeared";
code[1] = "10-1" ; definition[1] = "Frequency Change";
code[2] = "10-2" ; definition[2] = "Negative";
code[3] = "10-3" ; definition[3] = "Stop Transmitting";
code[4] = "10-4" ; definition[4] = "Affirmative";
code[5] = "10-5" ; definition[5] = "Relay Message";
code[6] = "10-6" ; definition[6] = "Busy";
code[7] = "10-7" ; definition[7] = "Out Of Service";
code[8] = "10-8" ; definition[8] = "In Service";
code[9] = "10-9" ; definition[9] = "Repeat";
code[10] = "10-10" ; definition[10] = "Fight In Progress";
code[11] = "10-11" ; definition[11] = "Traffic Stop";
code[12] = "10-12" ; definition[12] = "Standby";
code[13] = "10-13" ; definition[13] = "Gun Shots";
code[15] = "10-15" ; definition[15] = "Subject en Route to station";
code[16] = "10-16" ; definition[16] = "Stolen Vehicle";
code[17] = "10-17" ; definition[17] = "Suspicious Person";
code[19] = "10-19" ; definition[19] = "Active Ride Along";
code[20] = "10-20" ; definition[20] = "location";
code[22] = "10-22" ; definition[22] = "Disregard";
code[23] = "10-23" ; definition[23] = "Arrived on scene";
code[25] = "10-25" ; definition[25] = "Do you have contact with ?";
code[26] = "10-26" ; definition[26] = "ETA";
code[27] = "10-27" ; definition[27] = "Drivers license check for valid";
code[28] = "10-28" ; definition[28] = "license Plate check";
code[29] = "10-29" ; definition[29] = "NCIC Warrant Check";
code[30] = "10-30" ; definition[30] = "Wanted Person";
code[31] = "10-31" ; definition[31] = "Armed Suspect";
code[32] = "10-32" ; definition[32] = "Request Backup, Code 1,2,3";
code[34] = "10-34" ; definition[34] = "Wanted Person";
code[35] = "10-35" ; definition[35] = "Not Wanted No Warrants";
code[38] = "10-38" ; definition[38] = "Suspicious Vehicle";
code[41] = "10-41" ; definition[41] = "Beginning Tour Of Duty";
code[42] = "10-42" ; definition[42] = "Ending Tour Of Duty";
code[43] = "10-43" ; definition[43] = "Information About ?";
code[46] = "10-46" ; definition[46] = "Attempt Of Suicide";
code[49] = "10-49" ; definition[49] = "Drag Racing";
code[50] = "10-50" ; definition[50] = "vehicle Accident";
code[51] = "10-51" ; definition[51] = "Request Towing Service";
code[52] = "10-52" ; definition[52] = "Request EMS";
code[53] = "10-53" ; definition[53] = "Request Fire Department";
code[54] = "10-54" ; definition[54] = "Hit And Run";
code[55] = "10-55" ; definition[55] = "Intoxicated Driver";
code[56] = "10-56" ; definition[56] = "Intoxicated Pedestrian";
code[60] = "10-60" ; definition[60] = "Assault By An Animal";
code[61] = "10-61" ; definition[61] = "Bicycle Theft";
code[62] = "10-62" ; definition[62] = "Kidnapping";
code[63] = "10-63" ; definition[63] = "Radio Check";
code[64] = "10-64" ; definition[64] = "Sexual Assualt";
code[65] = "10-65" ; definition[65] = "Armed Robbery";
code[66] = "10-66" ; definition[66] = "Reckless Driver";
code[67] = "10-67" ; definition[67] = "Fire";
code[70] = "10-70" ; definition[70] = "Foot Pursuit";
code[71] = "10-71" ; definition[71] = "Request Supervisor On Scene";
code[72] = "10-72" ; definition[72] = "Administrative Assistance";
code[73] = "10-73" ; definition[73] = "Advise Status";
code[74] = "10-74" ; definition[74] = "Negative";
code[76] = "10-76" ; definition[76] = "Prowler";
code[80] = "10-80" ; definition[80] = "Vehicle Pursuit";
code[85] = "10-85" ; definition[85] = "Delay Due To";
code[86] = "10-86" ; definition[86] = "Any Traffic For me?";
code[88] = "10-88" ; definition[88] = " Requesting Deputy Chief (Department)";
code[89] = "10-89" ; definition[89] = "Requesting Chief (Department)";
code[90] = "10-90" ; definition[90] = "Warning";
code[91] = "10-91" ; definition[91] = "Unnecessary use of Radio";
code[93] = "10-93" ; definition[93] = "Bank Alarm";
code[97] = "10-97" ; definition[97] = "In route";
code[99] = "10-99" ; definition[99] = "Officer In Distress EXTREME EMERGENCY ONLY";
do
{
answer = myRandom.nextInt(68);
System.out.println("\nCode Is : " + code [answer] + "\n");
for (i = 0;i<Size;i++) {
int j;
do
{
j = myRandom.nextInt(68);
}
while (definitionUsed[j] != 0 || j == answer);
definitionUsed[j] = 1;
listedDefinition[i] = j;
}
listedDefinition[myRandom.nextInt(4)] = answer;
for (i = 0;i<Other;i++)
{
System.out.println((i + 1) + " - " +
definition[listedDefinition[i]]);
}
System.out.print("\nWhat is The definition? (Enter 0 to Stop) ");
definitionSelected = myScanner.nextInt();
if (definitionSelected != 0)
{
if (listedDefinition[definitionSelected - 1] == answer)
System.out.println("That's It Good Job");
}
else
{
System.out.println("Sorry, The answer is " + definition +".");
}
}
while (definitionSelected != 0);
}
}
解决方案
您必须修复初始数组大小。
在您的代码中,您有:
code[99] = "10-99"
和
definition[99] = "Officer In Distress EXTREME EMERGENCY ONLY";
在这两种情况下,您都在尝试定位99
,因此这意味着您至少有100
元素(因为100
元素的位置是 from 0
to 99
)。
因此,您必须在这些行中将初始大小从更改68
为:100
String[] code = new String[68];
String[] definition = new String[68];
int[] listedDefinition = new int[4];
int[] definitionUsed = new int[68];
double[] alpha = new double[68];
至:
String[] code = new String[100];
String[] definition = new String[100];
int[] listedDefinition = new int[100];
int[] definitionUsed = new int[100];
double[] alpha = new double[100];
推荐阅读
- node.js - 如何在 MongoDB 内的数组中添加条目
- java - 如何解决对实体“l”的错误引用必须以“;”结尾 从晨星获取时的分隔符
- javascript - 如何删除jquery中的特定按钮
- python - 底图的 drawgreatcirlces() 函数无法将浮点 NaN 转换为整数
- elasticsearch - 如何将 OAuth2 凭据应用于 Fluentd 以进行弹性摄取?
- image - 按每日多边形裁剪每日图像并提取值到点
- r - 根据 R 中具有不同数据框输入的多个条件创建列类型
- flutter - Flutter Camera Package 拍照耗时太长
- c# - 如何在运行时设置列表大小 - Unity
- mongodb - Mongo dbshell 命令历史