Java 输出显示为空

Java 输出显示为空,java,Java,因此,我是一名编程初学者,我在课堂上有一个项目,要求我制作一个桥牌,并将其分配给四名玩家。其中一个任务要求我打印一个无序的数据组,然而,当我尝试打印它时,它输出52个null语句,而不是无序的数据组。有人能帮我弄清楚吗。多谢各位 import java.util.*; public class Card { public static String[] SUITS = {"Clubs","Diamonds","Hearts","Spades"}; public static St

因此,我是一名编程初学者,我在课堂上有一个项目,要求我制作一个桥牌,并将其分配给四名玩家。其中一个任务要求我打印一个无序的数据组,然而,当我尝试打印它时,它输出52个null语句,而不是无序的数据组。有人能帮我弄清楚吗。多谢各位

import java.util.*;

public class Card {

   public static String[] SUITS = {"Clubs","Diamonds","Hearts","Spades"};
   public static String[] RANKS = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

   public static String[]deck = new String[52];

   public static String[] createDeck() { // initializes and creates deck

      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];
         }
      }
      return deck; 
   }

   public static void shuffleDeck(String[]deck) { //shuffles deck created from array
      int n = deck.length;

      for (int i = 0; i < n; i++) {

         int r = i + (int)(Math.random() * (n-i));

         String temp = deck[r];
         deck[r] = deck[i]; 
         deck[i] = temp;

         System.out.println(deck[i]);
      }  
   }   

   public static void main(String[] args) {
      Card.shuffleDeck(deck);

   }
import java.util.*;
公务舱卡{
公共静态字符串[]套装={“梅花”、“钻石”、“红心”、“黑桃”};
公共静态字符串[]排名={“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“J”、“Q”、“K”、“A”};
公共静态字符串[]组=新字符串[52];
公共静态字符串[]createDeck(){//初始化并创建deck
for(int i=0;i
main()
方法中缺少
createDeck()
调用:

public static void main(String[] args) {
    createDeck();
    shuffleDeck(deck);
}
因为以下语句仅使用
52
null
值初始化
deck
数组:

public static String[]deck = new String[52];
您需要用实际值填充
deck
数组以正确显示它们。您可以安全地将
createDeck()
标记为
void
,因为您不需要返回声明为
static
deck
数组,该数组无论如何都可以访问。
shuffleDeck()的情况也是如此
方法,您不需要传递
静态
数组,它可以访问


或者您可以使用另一种方法,将
deck
数组声明为局部变量,并将其作为参数传递给这些方法。

我建议将
deck
设置为局部变量,而不是静态变量-这将使此类错误更难运行!deck应该是单独的
Class
使用
Card
类创建组当您执行
deck d=new deck()
时,我建议您学习如何使用OOP,而不仅仅将所有内容声明为
静态
字段。