私は30分間検索し、単語と値の両方に関して配列に何も答えなかった。単語と整数の両方を配列に挿入する
カードのデッキを作成しようとしていて、配列内のスロットの値を "クラブ"にして、スロット[4]の値が "5クラブ "。
可能ですか?配列はStringとして定義されます。
ありがとうございます!
これは私のラインです(間違いだと思います)。 deck [j] [k] = "(j + 1)個のクラブ";
私は30分間検索し、単語と値の両方に関して配列に何も答えなかった。単語と整数の両方を配列に挿入する
カードのデッキを作成しようとしていて、配列内のスロットの値を "クラブ"にして、スロット[4]の値が "5クラブ "。
可能ですか?配列はStringとして定義されます。
ありがとうございます!
これは私のラインです(間違いだと思います)。 deck [j] [k] = "(j + 1)個のクラブ";
あなたは非均質なコレクションをしたいです。これは、異なるタイプを保持できるコレクションを意味します。これは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))
私はあなたが一般的にこれに良くアプローチできると思います。カードのデッキを作成することは、あらゆるオブジェクト指向言語の一般的なシナリオです。あなたがしたいことは、ランクフィールドとスーツフィールドの両方を持つカスタムタイプを定義し、そのタイプの配列を作成することです。
は、この質問を参照してください: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
私はあなたのコードを見直しO/W特定SOLNを教えて傾けます。私が思い付くことができる最高のSOLNは(W/Oすべてのコードを知っている)である:
String card = (j+1)+" of clubs";
String deck[]=new String[]{card};
てみ「のクラブの「=(J + 1)+ – Jens
あなたは、いくつかのJava初心者のリソース(チュートリアル、ビデオをつかんで開始することができ本、...)あなたはいくつかの基本的なものと闘う。もちろん、 'String []デッキを構築し、' deck [i] = i + "クラブで初期化することもできます;"ループを使用します。ただし、** OOP **の方法で専用の 'Card'クラスを作成し、' Card [] deck'などを使用することもできます。引用符を使用すると、 'String'を開始することを示します。そこに値を含めるには、テキストを終了し、 'i +" ... "を使って' int'の 'String'値を追加する必要があります。 – Zabuza
作業中!ありがとう:) –