当我运行这段代码时遇到问题,我得到一个数组越界异常,问题是我更改了面数组并添加了“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/