2017-10-25 13 views
-1

私は30分間検索し、単語と値の両方に関して配列に何も答えなかった。単語と整数の両方を配列に挿入する

カードのデッキを作成しようとしていて、配列内のスロットの値を "クラブ"にして、スロット[4]の値が "5クラブ "。

可能ですか?配列はStringとして定義されます。

ありがとうございます!

これは私のラインです(間違いだと思います)。 deck [j] [k] = "(j + 1)個のクラブ";

+0

てみ「のクラブの「=(J + 1)+ – Jens

+3

あなたは、いくつかのJava初心者のリソース(チュートリアル、ビデオをつかんで開始することができ本、...)あなたはいくつかの基本的なものと闘う。もちろん、 'String []デッキを構築し、' deck [i] = i + "クラブで初期化することもできます;"ループを使用します。ただし、** OOP **の方法で専用の 'Card'クラスを作成し、' Card [] deck'などを使用することもできます。引用符を使用すると、 'String'を開始することを示します。そこに値を含めるには、テキストを終了し、 'i +" ... "を使って' int'の 'String'値を追加する必要があります。 – Zabuza

+0

作業中!ありがとう:) –

答えて

0

あなたは非均質なコレクションをしたいです。これは、異なるタイプを保持できるコレクションを意味します。これはJavaで可能ですが、私はあなたのニーズに強く反対しています。

代わりに、SuitとValueの2つのプロパティを持つCardクラスを作成します。あなたは単にカードのコレクションを持つことができます(それは同種のコレクション - 1つのタイプのみを保持できるコレクションです)。以下のような

何か:

public class Card { 

    private String _suit; 
    private Int _number 

    public Card(String suit, Int number) { 
     _suit = suit 
     _number = number 
    } 

    public String getSuit() { 
     return _suit 
    } 
    public void setSuit(suit: String) { 
     _suit = suit 
    } 

    public Int getNumber() { 
     return _number 
    } 
    public void setNumber(number: Int) { 
     _number = number 
    } 
} 

そして、あなたがそうのようなカードのコレクションを持つことができます。

private Collection<Card> deck = ArrayList<Card>() 

deck.add(new Card("Diamonds", 5)) 
1

私はあなたが一般的にこれに良くアプローチできると思います。カードのデッキを作成することは、あらゆるオブジェクト指向言語の一般的なシナリオです。あなたがしたいことは、ランクフィールドとスーツフィールドの両方を持つカスタムタイプを定義し、そのタイプの配列を作成することです。

は、この質問を参照してください:Deck of cards JAVA

は、JavaのカードのデッキのためのGoogle検索を行ってみてください。ここで素敵なtutorialからの例です:

/** 
* An object of type Card represents a playing card from a 
* standard Poker deck, including Jokers. The card has a suit, which 
* can be spades, hearts, diamonds, clubs, or joker. A spade, heart, 
* diamond, or club has one of the 13 values: ace, 2, 3, 4, 5, 6, 7, 
* 8, 9, 10, jack, queen, or king. Note that "ace" is considered to be 
* the smallest value. A joker can also have an associated value; 
* this value can be anything and can be used to keep track of several 
* different jokers. 
*/ 
public class Card { 

    public final static int SPADES = 0; // Codes for the 4 suits, plus Joker. 
    public final static int HEARTS = 1; 
    public final static int DIAMONDS = 2; 
    public final static int CLUBS = 3; 
    public final static int JOKER = 4; 

    public final static int ACE = 1;  // Codes for the non-numeric cards. 
    public final static int JACK = 11; // Cards 2 through 10 have their 
    public final static int QUEEN = 12; // numerical values for their codes. 
    public final static int KING = 13; 

    /** 
    * This card's suit, one of the constants SPADES, HEARTS, DIAMONDS, 
    * CLUBS, or JOKER. The suit cannot be changed after the card is 
    * constructed. 
    */ 
    private final int suit; 

    /** 
    * The card's value. For a normal card, this is one of the values 
    * 1 through 13, with 1 representing ACE. For a JOKER, the value 
    * can be anything. The value cannot be changed after the card 
    * is constructed. 
    */ 
    private final int value; 

    /** 
    * Creates a Joker, with 1 as the associated value. (Note that 
    * "new Card()" is equivalent to "new Card(1,Card.JOKER)".) 
    */ 
    public Card() { 
     suit = JOKER; 
     value = 1; 
    } 

    /** 
    * Creates a card with a specified suit and value. 
    * @param theValue the value of the new card. For a regular card (non-joker), 
    * the value must be in the range 1 through 13, with 1 representing an Ace. 
    * You can use the constants Card.ACE, Card.JACK, Card.QUEEN, and Card.KING. 
    * For a Joker, the value can be anything. 
    * @param theSuit the suit of the new card. This must be one of the values 
    * Card.SPADES, Card.HEARTS, Card.DIAMONDS, Card.CLUBS, or Card.JOKER. 
    * @throws IllegalArgumentException if the parameter values are not in the 
    * permissible ranges 
    */ 
    public Card(int theValue, int theSuit) { 
     if (theSuit != SPADES && theSuit != HEARTS && theSuit != DIAMONDS && 
      theSuit != CLUBS && theSuit != JOKER) 
     throw new IllegalArgumentException("Illegal playing card suit"); 
     if (theSuit != JOKER && (theValue < 1 || theValue > 13)) 
     throw new IllegalArgumentException("Illegal playing card value"); 
     value = theValue; 
     suit = theSuit; 
    } 

    /** 
    * Returns the suit of this card. 
    * @returns the suit, which is one of the constants Card.SPADES, 
    * Card.HEARTS, Card.DIAMONDS, Card.CLUBS, or Card.JOKER 
    */ 
    public int getSuit() { 
     return suit; 
    } 

    /** 
    * Returns the value of this card. 
    * @return the value, which is one of the numbers 1 through 13, inclusive for 
    * a regular card, and which can be any value for a Joker. 
    */ 
    public int getValue() { 
     return value; 
    } 

    /** 
    * Returns a String representation of the card's suit. 
    * @return one of the strings "Spades", "Hearts", "Diamonds", "Clubs" 
    * or "Joker". 
    */ 
    public String getSuitAsString() { 
     switch (suit) { 
     case SPADES: return "Spades"; 
     case HEARTS: return "Hearts"; 
     case DIAMONDS: return "Diamonds"; 
     case CLUBS: return "Clubs"; 
     default:  return "Joker"; 
     } 
    } 

    /** 
    * Returns a String representation of the card's value. 
    * @return for a regular card, one of the strings "Ace", "2", 
    * "3", ..., "10", "Jack", "Queen", or "King". For a Joker, the 
    * string is always numerical. 
    */ 
    public String getValueAsString() { 
     if (suit == JOKER) 
     return "" + value; 
     else { 
     switch (value) { 
     case 1: return "Ace"; 
     case 2: return "2"; 
     case 3: return "3"; 
     case 4: return "4"; 
     case 5: return "5"; 
     case 6: return "6"; 
     case 7: return "7"; 
     case 8: return "8"; 
     case 9: return "9"; 
     case 10: return "10"; 
     case 11: return "Jack"; 
     case 12: return "Queen"; 
     default: return "King"; 
     } 
     } 
    } 

    /** 
    * Returns a string representation of this card, including both 
    * its suit and its value (except that for a Joker with value 1, 
    * the return value is just "Joker"). Sample return values 
    * are: "Queen of Hearts", "10 of Diamonds", "Ace of Spades", 
    * "Joker", "Joker #2" 
    */ 
    public String toString() { 
     if (suit == JOKER) { 
     if (value == 1) 
      return "Joker"; 
     else 
      return "Joker #" + value; 
     } 
     else 
     return getValueAsString() + " of " + getSuitAsString(); 
    } 


} // end class Card 
0

私はあなたのコードを見直しO/W特定SOLNを教えて傾けます。私が思い付くことができる最高のSOLNは(W/Oすべてのコードを知っている)である:

String card = (j+1)+" of clubs"; 
String deck[]=new String[]{card}; 
関連する問題