有什么办法可以修复这个数组超出绑定的异常?

时间:2018-02-05 02:58:33

标签: java arrays arraylist

我运行此代码时遇到问题我得到一个超出绑定异常的数组,问题是我更改了face数组并添加了" 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]);
        }
    }

}

1 个答案:

答案 0 :(得分:1)

您的face数组与rank数组的长度不同。然而你对它们使用相同的迭代器(i),直到更大的数组(面)结束。