Java 试图得到一手牌来展示西装符号
我正在研究一种方法,试图显示手部的西服符号,因此它将是4(club),而不是4C,其中(club)是club符号的unicode 对于switch语句,HEART、CLUB等在我的程序顶部声明为字符串,表示正确的unicode 我的问题是,当我运行该方法时,包含“Card Card=cards[I];”的行产生了一个空指针异常,我不知道为什么。请帮忙:) 我在上面有“私人卡”。当我尝试do=hand.getCards时,它会产生一个错误,因为ArrayList无法转换为Card[] 这是我现在的方法Java 试图得到一手牌来展示西装符号,java,loops,for-loop,nullpointerexception,switch-statement,Java,Loops,For Loop,Nullpointerexception,Switch Statement,我正在研究一种方法,试图显示手部的西服符号,因此它将是4(club),而不是4C,其中(club)是club符号的unicode 对于switch语句,HEART、CLUB等在我的程序顶部声明为字符串,表示正确的unicode 我的问题是,当我运行该方法时,包含“Card Card=cards[I];”的行产生了一个空指针异常,我不知道为什么。请帮忙:) 我在上面有“私人卡”。当我尝试do=hand.getCards时,它会产生一个错误,因为ArrayList无法转换为Card[] 这是我现在的
private String displaySuits() {
for (int i = 0; i < hand.getCards().size(); i++) {
Card card = cards[i];
suits.append(" ");
suits.append(card.getRank());
switch (card.getSuit()) {
case SPADE:
suits.append(SPADE);
break;
case DIAMOND:
suits.append(DIAMOND);
break;
case CLUB:
suits.append(CLUB);
break;
case HEART:
suits.append(HEART);
break;
}
}
return suits.toString();
}
private String displaySuits(){
对于(int i=0;i
您忘记在方法中定义卡片的数组列表
private String displaySuits() {
ArrayList<Card> cards = hand.getCards();
StringBuilder suits = new StringBuilder();
for (int i = 0; i < cards.size(); i++) {
Card card = cards[i];
suits.append(" ");
suits.append(card.getRank());
switch (card.getSuit()) {
case SPADE:
suits.append((char)'\u2660');
break;
case DIAMOND:
suits.append((char)'\u2666');
break;
case CLUB:
suits.append((char)'\u2663');
break;
case HEART:
suits.append((char)'\u2764');
break;
}
}
return suits.toString();
}
private String displaySuits(){
ArrayList cards=hand.getCards();
StringBuilder套装=新的StringBuilder();
对于(int i=0;i
您忘记在方法中定义卡片的数组列表
private String displaySuits() {
ArrayList<Card> cards = hand.getCards();
StringBuilder suits = new StringBuilder();
for (int i = 0; i < cards.size(); i++) {
Card card = cards[i];
suits.append(" ");
suits.append(card.getRank());
switch (card.getSuit()) {
case SPADE:
suits.append((char)'\u2660');
break;
case DIAMOND:
suits.append((char)'\u2666');
break;
case CLUB:
suits.append((char)'\u2663');
break;
case HEART:
suits.append((char)'\u2764');
break;
}
}
return suits.toString();
}
private String displaySuits(){
ArrayList cards=hand.getCards();
StringBuilder套装=新的StringBuilder();
对于(int i=0;i
当您使用阵列列表时,不要将卡
声明为阵列卡[]
private List<Card> cards;
您必须访问以下元素:
cards.get(i);
注意事项:
- 不要忘记
ArrayList
s与数组不同
- 不要忘记声明和初始化
套装
,例如:
StringBuilder套装=新建StringBuilder()代码>
当您使用阵列列表时,不要将卡
声明为阵列卡[]
private List<Card> cards;
您必须访问以下元素:
cards.get(i);
注意事项:
- 不要忘记
ArrayList
s与数组不同
- 不要忘记声明和初始化
套装
,例如:
StringBuilder套装=新建StringBuilder()代码>
您可以发布卡的声明/初始化吗
?您是指我的卡类吗?因为您试图通过索引i
访问卡的元素,所以卡应该是一个数组。发布它的声明/初始化,我想应该类似于Card[]cards…
我在顶部有“private Card[]cards;”。当我尝试do=hand.getCards时,它会产生一个错误,因为ArrayList无法转换为Card[]您可以发布卡的声明/初始化吗
?您是指我的卡类吗?因为您试图通过索引I
访问卡的元素,所以卡
应该是一个数组。发布它的声明/初始化,我想应该类似于Card[]cards…
我在顶部有“private Card[]cards;”。当我尝试do=hand.getCards时,它会产生一个错误,因为ArrayList无法转换为Card[],这会产生一个错误,因为ArrayList无法转换为Card[],我刚刚为您更改了它。你还需要在某个地方定义“西装”。这是一个StringBuffer对象吗?我不确定StringBuffer是什么,所以可能不是。那么它是什么?大多数列表类都使用Add而不是Append。我发现了这一点。我需要在心、钻石、黑桃等上加一个S。非常感谢你的帮助+这会产生错误,因为ArrayList无法转换为Card[]我刚刚为您更改了它。你还需要在某个地方定义“西装”。这是一个StringBuffer对象吗?我不确定StringBuffer是什么,所以可能不是。那么它是什么?大多数列表类都使用Add而不是Append。我发现了这一点。我需要在心、钻石、黑桃等上加一个S。非常感谢你的帮助+repI不认为您希望将卡片设置为类的全局,因为其状态由hand对象控制。我认为这不够清楚,因为他没有提供有关他正在使用的类的进一步信息。我做了这个假设,因为他提到他已经宣布卡
为私人卡。但是你所说的完全是错误的