Java 我对如何添加“感到困惑”;职级;去我的DeckOfCards实验室

Java 我对如何添加“感到困惑”;职级;去我的DeckOfCards实验室,java,arrays,arraylist,Java,Arrays,Arraylist,各位,我正在尝试添加一个名为ranks的数组,其中包含牌的等级,例如1的等级为1,ace的等级为11或1。我已经制作了一个面部阵列和套装阵列,我所需要的只是等级,我不知道如何将其添加到最终打印的甲板阵列中 公共类卡片{ 公共静态void main(字符串[]args){ 字符串[]s={ “梅花”、“钻石”、“红心”、“黑桃” }; 字符串[]面={ "2", "3", "4", "5", "6", "7", "8", "9", "10", “杰克”、“女王”、“国王”、“王牌” }; int

各位,我正在尝试添加一个名为ranks的数组,其中包含牌的等级,例如1的等级为1,ace的等级为11或1。我已经制作了一个面部阵列和套装阵列,我所需要的只是等级,我不知道如何将其添加到最终打印的甲板阵列中

公共类卡片{
公共静态void main(字符串[]args){
字符串[]s={
“梅花”、“钻石”、“红心”、“黑桃”
};
字符串[]面={
"2", "3", "4", "5", "6", "7", "8", "9", "10",
“杰克”、“女王”、“国王”、“王牌”
};
int n=s.length*face.length;
字符串[]组=新字符串[n];
对于(int i=0;i
最简单的方法是创建额外的数组来存储列组,例如:

String[] ranks = {"1", "2", "3", "4", "5", "6", "7", "8", "9",
    "10", "11", "12", "13"};
并将甲板人口更新为:

deck[s.length*i + j] = face[i] + ", " + s[j] + ", rank: " + ranks[i];

更好的解决方案是创建Card类来存储所有数据。

您可以创建一个Card类,然后将其添加到卡的arraylist中。此类可以封装每张卡的等级、西装和人脸信息

class Card {
  private ArrayList≤Integer≥ rank = new ArrayList<>();
  private String suit;
  private String face;

  public Card(int newRank, String newSuit, String newFace){
    this.rank.add(newRank);
    this.suit = newSuit;
    this.face = newFace;
  }
  //additional methods, getters/setters.
}

可以创建卡片对象,如果您愿意,可以使用2D数组等。单词“rank”通常用于您所谓的“face”:。a的值1或11不是卡片的功能,而是正在玩的纸牌游戏的功能,例如21点:。如您所见,13个“等级”中有3个使用了“脸”一词。至于您的问题,通常最好使用
enum
表示
Suit
Rank
。然后可以将
字段添加到
排名
。当然,这假设您已经了解了
enum
Arraylist<Card> deck = new ArrayList<>();
for(int j = 0; j < suitArray.length; j++){
    for(int k = 0; k < faceArray.length; k++){
        deck.add(new Card(k, suitArray[j], faceArray[k]));
    }
}
for(Card c : deck){
 if (c.getName.equals("ACE"))
    c.addRank(11);
  }
}