首页 > 解决方案 > 如何显示我的原始纸牌 Java

问题描述

洗牌后的牌组将打印,但原始牌组不会打印,当我使用下面的代码时,我得到: [Ljava.lang.String;@677327b6 并且它重复了 52 次。

public class Deck {
    public static void main(String[] args) {
    String[] SUITS = {
            "Clubs", "Diamonds", "Hearts", "Spades"
    };

    String[] RANKS = {
            "2", "3", "4", "5", "6", "7", "8", "9", "10",
            "Jack", "Queen", "King", "Ace"
    };

    // initialising deck
    int n = SUITS.length * RANKS.length;
    String[] deck = new String[n];
    for (int i = 0; i < RANKS.length; i++) {
        for (int j = 0; j < SUITS.length; j++) {
            deck[SUITS.length * i + j] = RANKS[i] + " of " + SUITS[j];

     System.out.println("Original Deck Of Cards");
     System.out.println(deck);
    }
 }
    // shuffling the cards in the deck
    for (int i = 0; i < n; i++) {
        int r = i + (int) (Math**strong text**.random() * (n - i));
        String temp = deck[r];
        deck[r] = deck[i];
        deck[i] = temp;
    }
    // printing shuffled deck
    System.out.println("Randomly Shuffled Deck Of Cards");
    for (int i = 0; i < n; i++) {
        System.out.println(deck[i]);
     }

   }
 }

标签: javaplaying-cards

解决方案


改变这个

 for (int i = 0; i < RANKS.length; i++) {
    for (int j = 0; j < SUITS.length; j++) {
        deck[SUITS.length * i + j] = RANKS[i] + " of " + SUITS[j];

 System.out.println("Original Deck Of Cards");
 System.out.println(deck);
}

System.out.println("Original Deck Of Cards");
for (int i = 0; i < RANKS.length; i++) {
    for (int j = 0; j < SUITS.length; j++) {
        deck[SUITS.length * i + j] = RANKS[i] + " of " + SUITS[j];
        System.out.println(deck[SUITS.length * i + j]);
    }
}

希望能帮助到你


推荐阅读