0
public class NewDeck {

    public static void main(String[] args){

        String[] suits = new String[] {"Clubs", "Diamonds", "Spades", "Hearts"};

        String[] faces = new String[] {"Ace", "King", "Queen", "Jack"};

        String[][] deck = new String[][] {{},{}};

        int a = 0;
        int b = 0;

        for(String x: suits){

            a ++;

            for(String y: faces){


                deck[a][b] = {{x, y}};  // THIS IS THE LINE I NEED HELP WITH

                b++;

        System.out.println(deck);

            }

        }

    }

}

私が印刷することを期待しているのは次のとおりです。

{{"Clubs, "Ace"}{"Diamonds", "Ace"}{"Spades", "Ace"}{"Hearts", "Ace"}
 {"Clubs, "King"}{"Diamonds", "King"}{"Spades", "King"}{"Hearts", "King"}
 {"Clubs, "Queen"}{"Diamonds", "Queen"}{"Spades", "Queen"}{"Hearts", "Queen"}
 {"Clubs, "Jack"}{"Diamonds", "Jack"}{"Spades", "Jack"}{"Hearts", "Jack"}

そして、私が印刷したいとき:

deck[4][0]

私はそれが印刷されることを期待しています:

"Clubs"

私は非常に近いことを知っていますが、それは私が間違っていると信じている1行だけなので、問題の原因となっている行についてコメントしました。代わりに何を入れるかを誰かが知っている場合:

deck[a][b] = {{x, y}};

それは非常にありがたいです。事前にご回答いただきありがとうございます

4

3 に答える 3

2
public static void main(String args[]) {
    String suits[] = new String[] {"Clubs", "Diamonds", "Spades", "Hearts"};
    String faces[] = new String[] {"Ace", "King", "Queen", "Jack"};
    String deck[][] = new String[suits.length * faces.length][2];

    int i=0;

    for (String suit : suits) {
        for (String face : faces) {
            deck[i][0] = suit;
            deck[i][1] = face;
            i++;
        }
    }
}
于 2013-08-03T10:24:12.520 に答える
1
deck[a][b] = {{x, y}};

これを次のように置き換えます。

deck[index][0]=x;
deck[index][1]=y;

またdeck[4][0]、正しい結果が得られません。配列には、0 から配列サイズ 1 で終わるインデックス付きの要素があることに注意してください。

System.out.println(deck);配列自体を印刷するだけでは、配列の値を印刷することはできません。
上記のステートメントは、配列オブジェクトのハッシュコードを単純に出力します。リストやセットではなく、配列であることを忘れないでください。配列を反復処理し、その中の要素を出力する必要があります。

于 2013-08-03T10:29:27.697 に答える
0

Cardそのためのクラス が必要になると思います。

public class NewDeck {
  public static class Card {
    public final String suit;
    public final String face;
    public Card(String suit, String face) {
      this.suit = suit;
      this.face = face;
    }
    public String toString() {
      return "{\"" + suit + "\", \"" + face + "\"}";
    }
  }
  public static void main(String[] args) {
    String[] suits = new String[] {"Clubs", "Diamonds", "Spades", "Hearts"};
    String[] faces = new String[] {"Ace", "King", "Queen", "Jack"};

    Card[][] deck = new Card[suits.length][faces.length];

    int a = 0;
    int b = 0;
    for(String x: suits){
      b = 0;
      for(String y: faces){
        deck[a][b] = new Card(x, y);
        b++;
      }
      a++;
    }
  }
}
于 2013-08-03T11:01:16.650 に答える