各位开发者好!
下面是我的Java程序的方法。它有52张牌(矢量v)被洗牌,它应该只打印那些没有相同符号的牌(所以如果它的q是红心之王,它应该跳过红心之王)
它应该正常工作,但我得到:
线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:
数组索引超出范围:52在java. U.L.vector。获取(vector .java:748)
在507。
(507是这条线吗
if (v.get(i).getsymbol() != v.get(i + 1).getsymbol()) {
)
public void shufflenosamebefore() {
Collections.shuffle(v);
for (i = 0; i < v.size(); i++) {
if (v.get(i).getsymbol() != v.get(i + 1).getsymbol()) {
if (v.get(i).getsymbol() == 'T') {
v.get(i).setsymbol('â£');
}
if (v.get(i).getsymbol() == 'P') {
v.get(i).setsymbol('â ');
}
if (v.get(i).getsymbol() == 'C') {
v.get(i).setsymbol('â¦');
}
if (v.get(i).getsymbol() == 'H') {
v.get(i).setsymbol('â¥');
}
if (v.get(i).getnumber() == 11) {
System.out.println("Card n." + (i + 1) + " is J " + v.get(i).getsymbol());
} else if (v.get(i).getnumber() == 12) {
System.out.println("Card n." + (i + 1) + " is Q " + v.get(i).getsymbol());
} else if (v.get(i).getnumber() == 13) {
System.out.println("Card n." + (i + 1) + " is K " + v.get(i).getsymbol());
} else if (v.get(i).getnumber() == 0 || v.get(i).getnumber() == 1) {
System.out.println("Card n." + (i + 1) + " is A " + v.get(i).getsymbol());
} else {
System.out.println("Card n." + (i + 1) + " is " + v.get(i).getnumber() + " " + v.get(i).getsymbol());
}
}
}
}
为什么它给我这个错误和构建失败的任何输入?谢谢!