Java 如何从列表中选择随机字符串

Java 如何从列表中选择随机字符串,java,string,random,Java,String,Random,我正在尝试创建一个程序来刺激从卡片组中挑选卡片。我曾尝试使用随机类来选择套装和等级,但我无法让它工作。这是到目前为止我的代码 String[] rank = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"}; int idx = new Random().nextInt(rank.length); String random = (rank[idx]); Str

我正在尝试创建一个程序来刺激从卡片组中挑选卡片。我曾尝试使用
随机
类来选择
套装
等级
,但我无法让它工作。这是到目前为止我的代码

   String[] rank = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10",  "Jack", "Queen", "King"};
   int idx = new Random().nextInt(rank.length);
   String random = (rank[idx]);

   String[] suit = {"Clubs", "Diamonds", "Hearts", "Spades"};
   int idx = new Random().nextInt(suit.length);
   String random = (suit[idx]);

   System.out.println("The card you picked is " + Arrays.toString(rank) + " of " + Arrays.toString(suit));

我相信这很简单,但我对Java还比较陌生,所以非常感谢您的帮助

请务必添加错误,您没有包括您遇到的问题

但我希望是这样的:

1) 字符串random声明两次 2) 不需要Arrays.toString()

System.out.println("The card you picked is " + **Arrays.toString(rank)** + " of " + Arrays.toString(suit));
为什么要使用array.ToString()


请务必添加错误,您没有包括您遇到的问题

但我希望是这样的:

1) 字符串random声明两次 2) 不需要Arrays.toString()

System.out.println("The card you picked is " + **Arrays.toString(rank)** + " of " + Arrays.toString(suit));
为什么要使用array.ToString()


问题就在这里:
System.out.println(“您选择的卡片是”+Arrays.toString(rank)+“of”+Arrays.toString(suit))。您每次都在打印项目的完整列表

您需要做的是放置
(排名[idx])
(西装[idx])编码为字符串变量并打印这些变量

    String[] rank = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
    int idx = new Random().nextInt(rank.length);
    String randomRank = (rank[idx]);

    String[] suit = {"Clubs", "Diamonds", "Hearts", "Spades"};
    idx = new Random().nextInt(suit.length);
    String randomSuit = (suit[idx]);
    System.out.println("The card you picked is " + randomRank + " of " + randomSuit);

问题就在这里:
System.out.println(“您选择的卡片是”+Arrays.toString(rank)+“of”+Arrays.toString(suit))。您每次都在打印项目的完整列表

您需要做的是放置
(排名[idx])
(西装[idx])编码为字符串变量并打印这些变量

    String[] rank = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
    int idx = new Random().nextInt(rank.length);
    String randomRank = (rank[idx]);

    String[] suit = {"Clubs", "Diamonds", "Hearts", "Spades"};
    idx = new Random().nextInt(suit.length);
    String randomSuit = (suit[idx]);
    System.out.println("The card you picked is " + randomRank + " of " + randomSuit);

你做得对。您只需打印正确的变量:

String[] rank =  // ...
int rankIndex = new Random().nextInt(rank.length);
String randomRank = rank[rankIndex];

String[] suit = // ...
int suitIndex = new Random().nextInt(suit.length);
String randomSuit = suit[suitIndex];

System.out.println("The card you picked is " + randomRank + " of " + randomSuit);

你做得对。您只需打印正确的变量:

String[] rank =  // ...
int rankIndex = new Random().nextInt(rank.length);
String randomRank = rank[rankIndex];

String[] suit = // ...
int suitIndex = new Random().nextInt(suit.length);
String randomSuit = suit[suitIndex];

System.out.println("The card you picked is " + randomRank + " of " + randomSuit);

您正在重复变量名
idx
random
,请选择不同的名称并按如下方式输出:

System.out.println("The card you picked is " +random2+ " of " +random);
//The card you picked is 2 of Spades

实时Java示例:


如果要重复变量名称
idx
random
,请选择不同的名称并按如下方式输出:

System.out.println("The card you picked is " +random2+ " of " +random);
//The card you picked is 2 of Spades

实时Java示例:


“但我不能让它工作”你可以做得更好:)你有两个同名的变量idx,random,你打印出了错误的变量,应该是两个随机值。你在重复你的变量,
idx
random
使用不同的名称。“但我无法让它工作”你可以做得更好:)你有两个同名的变量idx,random,你打印出的变量是错误的,应该是两个随机值。你在重复你的变量,
idx
random
使用不同的名称。