java - 有什么办法可以修复这个数组越界异常吗?

标签 java arrays arraylist

当我运行这段代码时遇到问题,我得到一个数组越界异常,问题是我更改了面数组并添加了“1”,我不知道如何解决这个问题,任何人都可以帮忙,抱歉,如果问题很愚蠢。

  public class DeckOfCards_Rumenov{
    public static void main(String[] args) {
        String[] s = {
            "Clubs", "Diamonds", "Hearts", "Spades"
        };

        String[] face = {
        "1" ,"2", "3", "4", "5", "6", "7", "8", "9", "10",
        "Jack", "Queen", "King", "Ace"
        };
        String[] ranks = {"1", "2", "3", "4", "5", "6", "7", "8", "9",
        "10", "10", "10", "1 or 11"
        };
        int n = s.length * face.length;
        String[] deck = new String[n];
        for (int i = 0; i < face.length; i++) {
            for (int j = 0; j < s.length; j++) {
                deck[s.length*i+j] = face[i] + ", " + s[j] + ", " + ranks[i];
            }
        }
        for (int i = 0; i < n; i++) {
            int r = i + (int) (Math.random() * (n-i));
            String temp = deck[r];
            deck[r] = deck[i];
            deck[i] = temp;
        }
        for (int i = 0; i < n; i++) {
            System.out.println(deck[i]);
        }
    }

}

最佳答案

您的脸部数组与排名数组的长度不同。然而,您对它们都使用相同的迭代器 (i),直到较大数组 (face) 的末尾。

关于java - 有什么办法可以修复这个数组越界异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48615290/

相关文章:

java - 并发模式失败,而 Full GC

python - numpy concatenate 不将新数组附加到空多维数组

java - 如何在数组列表中插入每 10 行?

java - 如何在java ArrayList中向后移动数据

java - 当从每个循环内部删除 ArrayList 的一个元素时。它打破了循环

java - "AWT-EventQueue-0"java.lang.NullPointerException 错误的原因

java - Java中按多边形区域裁剪图像

java - 如何在以 api 级别 15 为目标时对 android 中的项目 vector 进行排序?

javascript - 从数组对象中的数组中删除对象

java - 将一个 ArrayList 中的对象添加到另一个 ArrayList