这是我的代码:
for (int i = 0; i < 99; i++)
{
String inputString = keyboard.next();
String[] inputArray = inputString.split(":");
if (inputString.equals("quit"))
System.out.println("You have quit");
FirstArray[i] = inputArray[0];
SecondArray[i] = Integer.parseInt(inputArray[1]); // these throw errors
ThirdArray[i] = Integer.parseInt(inputArray[2]);
System.out.println(FirstArray[i]);
System.out.println(SecondArray[i]);
System.out.println(ThirdArray[i]);
这是我的代码,我正在尝试测试数组,我需要使用分隔符“:”从用户拆分中获取输入
我必须parseInt
最后两个数组(因为它们接受整数值)以从 inputArray
的第二个和第三个索引获取分割输入。
我有代码的最后一部分来测试它是否有效,它确实有效,但是当我输入“quit”来结束循环时,它会抛出:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
我已经搜索并理解了这个问题,但不知道如何避免它。抱歉,如果我没有解释我的问题,我将不胜感激另一个可行的解决方案。预先感谢您的帮助
最佳答案
字符串“quit”不包含任何“:”字符,因此inputString.split(":")
的结果是一个包含单个元素的数组。因此,一旦您尝试访问 inputArray[1]
,就会出现异常,因为索引 1 引用数组中的第二个元素,尽管该数组只有一个元素
if (inputString.equals("quit")) {
System.out.println("You have quit");
return; // add this line
}
添加 return 语句(如上所示),这将绕过有问题的代码。无论如何,这似乎是正确的做法,因为用户要求退出该程序。
关于java - 将字符串从数组拆分为另外 3 个时出现 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34714041/