0

私は過去数日間これと戦ってきましたが、誰かが何らかのガイダンスを提供できることを望んでいます. Java で配列を扱うのは初めてで、Java を学習してからわずか 2 か月です。穏やかな。:)

私の考えでは、cardInDeck[][] に cardName (例: Ace、10、Jack) と suitName (例: Hearts、Spades など) が入力される並列配列を作成しています。メソッドからの出力と、配列に書き込んでいると思うものは期待どおりですが、配列の内容を出力すると、異常な結果が得られます。

これらの予期しない結果が、配列を宣言するときに不適切に構造化されているためか、神と自然 (または少なくとも Java) にとって忌まわしい配列を作成しようとしているか、または配列が正しいですが、内容を印刷する方法がわかりません。

あなたが提供できる助けをいただければ幸いです。前もって感謝します!

コードと結果を以下に示します。

import java.util.*;
import java.lang.*;
//
public class DeckOfCards
{
   public static void main(String[] args)
   {
      int rank;
      int suit;
//
   for(rank=1;rank<14;rank++)
   {
       String tempCardName = Integer.toString(rank);
       String cardName;
       if(rank==1)
       cardName="Ace";
       else
       if(rank==13)
       cardName="King";
       else
       if(rank==12)
       cardName="Queen";
       else
       if(rank==11)
       cardName="Jack";
       else
       cardName=tempCardName;
 //
       for(suit=1;suit<5;suit++)
       {
       String suitName;
       switch(suit)
       {case 1:
   suitName = "Spades";
   break;
   case 2:
   suitName = "Hearts";
   break;
   case 3:
   suitName = "Clubs";
   break;
         case 4:
   suitName = "Diamonds";
   break;
   default:
   suitName = "Error";}
       String tempCardInDeck=(cardName + " of " + suitName);
       System.out.print("method output: " tempCardInDeck);
 //*
       String[][] cardInDeck = new String[][]
          {
             {cardName,suitName}
          };
       System.out.print(" /// to array: " + cardName + " " + suitName);
       System.out.println(" /// from array: " + Arrays.toString( cardInDeck ) );
     }
     }
   }
 }

結果:

method output: Ace of Spades /// to array: Ace Spades /// from array: [[Ljava.lang.String;@9ffb18]
method output: Ace of Hearts /// to array: Ace Hearts /// from array: [[Ljava.lang.String;@11de914]
method output: Ace of Clubs /// to array: Ace Clubs /// from array: [[Ljava.lang.String;@b1406b]
method output: Ace of Diamonds /// to array: Ace Diamonds /// from array: [[Ljava.lang.String;@fc5408]
method output: 2 of Spades /// to array: 2 Spades /// from array: [[Ljava.lang.String;@1f102c1]
method output: 2 of Hearts /// to array: 2 Hearts /// from array: [[Ljava.lang.String;@1ec0130]
method output: 2 of Clubs /// to array: 2 Clubs /// from array: [[Ljava.lang.String;@1420fea]
method output: 2 of Diamonds /// to array: 2 Diamonds /// from array: [[Ljava.lang.String;@230be4]
method output: 3 of Spades /// to array: 3 Spades /// from array: [[Ljava.lang.String;@e1e567]
method output: 3 of Hearts /// to array: 3 Hearts /// from array: [[Ljava.lang.String;@9bfee2]
method output: 3 of Clubs /// to array: 3 Clubs /// from array: [[Ljava.lang.String;@17aaeec]
method output: 3 of Diamonds /// to array: 3 Diamonds /// from array: [[Ljava.lang.String;@1721a26]
method output: 4 of Spades /// to array: 4 Spades /// from array: [[Ljava.lang.String;@12db7c]
method output: 4 of Hearts /// to array: 4 Hearts /// from array: [[Ljava.lang.String;@7c28c]
method output: 4 of Clubs /// to array: 4 Clubs /// from array: [[Ljava.lang.String;@17588d5]
method output: 4 of Diamonds /// to array: 4 Diamonds /// from array: [[Ljava.lang.String;@16a7c99]
method output: 5 of Spades /// to array: 5 Spades /// from array: [[Ljava.lang.String;@1a5d08]
method output: 5 of Hearts /// to array: 5 Hearts /// from array: [[Ljava.lang.String;@d1c9b5]
method output: 5 of Clubs /// to array: 5 Clubs /// from array: [[Ljava.lang.String;@111c3f0]
method output: 5 of Diamonds /// to array: 5 Diamonds /// from array: [[Ljava.lang.String;@156f14c]
method output: 6 of Spades /// to array: 6 Spades /// from array: [[Ljava.lang.String;@fbd1fc]
method output: 6 of Hearts /// to array: 6 Hearts /// from array: [[Ljava.lang.String;@973678]
method output: 6 of Clubs /// to array: 6 Clubs /// from array: [[Ljava.lang.String;@1791620]
method output: 6 of Diamonds /// to array: 6 Diamonds /// from array: [[Ljava.lang.String;@9ba632]
method output: 7 of Spades /// to array: 7 Spades /// from array: [[Ljava.lang.String;@bc5245]
method output: 7 of Hearts /// to array: 7 Hearts /// from array: [[Ljava.lang.String;@1bd523d]
method output: 7 of Clubs /// to array: 7 Clubs /// from array: [[Ljava.lang.String;@6250d2]
method output: 7 of Diamonds /// to array: 7 Diamonds /// from array: [[Ljava.lang.String;@a8198c]
method output: 8 of Spades /// to array: 8 Spades /// from array: [[Ljava.lang.String;@25753d]
method output: 8 of Hearts /// to array: 8 Hearts /// from array: [[Ljava.lang.String;@1341183]
method output: 8 of Clubs /// to array: 8 Clubs /// from array: [[Ljava.lang.String;@169cccc]
method output: 8 of Diamonds /// to array: 8 Diamonds /// from array: [[Ljava.lang.String;@10469e8]
method output: 9 of Spades /// to array: 9 Spades /// from array: [[Ljava.lang.String;@c4fedd]
method output: 9 of Hearts /// to array: 9 Hearts /// from array: [[Ljava.lang.String;@138847d]
method output: 9 of Clubs /// to array: 9 Clubs /// from array: [[Ljava.lang.String;@1826ac5]
method output: 9 of Diamonds /// to array: 9 Diamonds /// from array: [[Ljava.lang.String;@12fb063]
method output: 10 of Spades /// to array: 10 Spades /// from array: [[Ljava.lang.String;@1e55d39]
method output: 10 of Hearts /// to array: 10 Hearts /// from array: [[Ljava.lang.String;@14b525c]
method output: 10 of Clubs /// to array: 10 Clubs /// from array: [[Ljava.lang.String;@c4c05]
method output: 10 of Diamonds /// to array: 10 Diamonds /// from array: [[Ljava.lang.String;@1530551]
method output: Jack of Spades /// to array: Jack Spades /// from array: [[Ljava.lang.String;@18235a1]
method output: Jack of Hearts /// to array: Jack Hearts /// from array: [[Ljava.lang.String;@18ee2ee]
method output: Jack of Clubs /// to array: Jack Clubs /// from array: [[Ljava.lang.String;@1d48043]
method output: Jack of Diamonds /// to array: Jack Diamonds /// from array: [[Ljava.lang.String;@30cd64]
method output: Queen of Spades /// to array: Queen Spades /// from array: [[Ljava.lang.String;@1fc9fee]
method output: Queen of Hearts /// to array: Queen Hearts /// from array: [[Ljava.lang.String;@67f797]
method output: Queen of Clubs /// to array: Queen Clubs /// from array: [[Ljava.lang.String;@1b01949]
method output: Queen of Diamonds /// to array: Queen Diamonds /// from array: [[Ljava.lang.String;@4c2849]
method output: King of Spades /// to array: King Spades /// from array: [[Ljava.lang.String;@1e8f2a0]
method output: King of Hearts /// to array: King Hearts /// from array: [[Ljava.lang.String;@90f19c]
method output: King of Clubs /// to array: King Clubs /// from array: [[Ljava.lang.String;@1e67280]
method output: King of Diamonds /// to array: King Diamonds /// from array: [[Ljava.lang.String;@675039]
4

3 に答える 3

1

配列の内容を出力したい場合は、Arrays.deepToString(cardInDeck)代わりにArrays.toString(cardInDeck).

于 2012-03-13T17:53:34.347 に答える
0

カードのデッキを実装する別の方法は、列挙型を使用することです。これにより、コンパイラが型チェックを強制できるようになります。これは非常に優れた方法です。これらのリンクで、 cardsdeck、およびdisplayの例については、Oracle の Java チュートリアルを参照してください。

于 2012-03-13T19:50:49.767 に答える
0

出力に表示されているのは、 のデフォルトの実装ですtoString。のドキュメントからArrays

指定された配列の内容の文字列表現を返します。配列に要素として他の配列が含まれている場合、それらは Object から継承された Object.toString() メソッドによって文字列に変換されます。これは、内容ではなく ID を記述します。

これはObjectのデフォルト バージョンであるため、得られるものは...

クラス Object の toString メソッドは、オブジェクトがインスタンスであるクラスの名前、アットマーク文字 `@'、およびオブジェクトのハッシュ コードの符号なし 16 進数表現で構成される文字列を返します。

別の回答で示唆されているように、Arrays.deepToStringはあなたが求めているものでなければなりません。それは私にとって実際に新しいものなので、自分で試してみます。

于 2012-03-13T18:08:34.410 に答える