我运行此代码时遇到问题我得到一个超出绑定异常的数组,问题是我更改了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]);
}
}
}
答案 0 :(得分:1)
您的face数组与rank数组的长度不同。然而你对它们使用相同的迭代器(i),直到更大的数组(面)结束。