Java代码越界异常

标签 java arrays 2d

我的程序应该根据大写数组评估用户输入。看起来我不断收到这样的错误消息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 19

有人可以帮忙吗?

package Capitol;
import java.util.Scanner;

public class Capitol {

    static Scanner input = new Scanner(System.in).useDelimiter("\r\n"); 
    public static void main(String[] args) {
        int correctAnswer = 0;
        String [][] grid = {
                {"Alabama", "California", "Delaware", "Florida", "Georgia",
                "Hawaii", "Idaho", "Kansas", "Lousiana", "Maryland", "New Mexico", "Oregon",
                "Pennsylvania", "Rhode Island", "South Carolina", "Texas", "Utah", "Virgina",
                "West Virginia"},
                {"Montgomery", "Sacramento", "Dover", "Tallahassee", "Atlanta",
                "Honolulu", "Boise", "Topeka", "Baton Rouge", "Annapolis", "San Jose", "Salem",
                "Harrisburg", "Providence", "Columbia", "Austin", "Salt Lake City", "Richmond",
                "Charleston"}};

        for(int i = 0; i< grid.length; i++){
            System.out.println("What is the capital of ?");
            String capital = input.next();
            for(int k =0; k <20; k++ ){
                String answer = null;
                grid[i][k] = answer;


                if(capital.equalsIgnoreCase(answer)){
                correctAnswer ++;   
                System.out.println("Your answer is correct");
                }
                else
                    System.out.println("The correct answer should be" + grid[i]);
            }

        }
        System.out.println("The correct count is " + correctAnswer);
    }
}

最佳答案

您的数组行中只有 19 个项目(索引 0 到 18),并且您正在尝试处理第 19 个项目。

改变

for(int k =0; k <20; k++ ){

for(int k =0; k <19; k++ ){

关于Java代码越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21814389/

相关文章:

java - <jsp :include or <@include or Tiles

java - 通过 FileOutputStream 传递变量

java - 将 2D 数组网格中的 "path"存储到列表中

css - 二维变换仅影响父级

algorithm - 找到一个点,使得到一组点 P 中任意点的最大距离最小化

java - 主机名与规范主机名

java - 将 key 发送到另一个应用程序

javascript - 如何从一系列数组中找到所有排列,这些数组在 javascript 中充当行和列?

python - 将值从 python 循环 append 到单个列表或数组

javascript - 创建对象或数组来处理多步骤表单