Java 有没有办法修复这个数组的越界异常?

Java 有没有办法修复这个数组的越界异常?,java,arrays,arraylist,Java,Arrays,Arraylist,我有一个问题,当我运行这段代码时,我得到了一个数组越界异常,问题是我更改了面数组并添加了1,我不知道如何解决这个问题,有人能帮忙吗,对不起,如果这个问题很愚蠢 public class DeckOfCards_Rumenov{ public static void main(String[] args) { String[] s = { "Clubs", "Diamonds", "Hearts", "Spades" };

我有一个问题,当我运行这段代码时,我得到了一个数组越界异常,问题是我更改了面数组并添加了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,直到较大数组面的末尾。

数组越界异常发生在哪一行?非常感谢,这对解决问题有很大帮助,我没有看到这一点