【问题标题】:How to select a random string from a list如何从列表中选择一个随机字符串
【发布时间】:2015-10-14 13:34:44
【问题描述】:

我正在尝试创建一个程序来刺激从一副牌中挑选一张牌。我尝试使用Random 类来选择suitrank,但我无法让它工作。这是我目前的代码。

   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 比较陌生,因此感谢您提供任何帮助!

【问题讨论】:

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

标签: java string random


【解决方案1】:

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

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);

【讨论】:

    【解决方案2】:

    问题在这里:System.out.println("The card you picked is " + Arrays.toString(rank) + " of " + Arrays.toString(suit));。您每次都在打印完整的项目列表。

    您需要做的是将(rank[idx])(suit[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);
    

    【讨论】:

      【解决方案3】:

      请务必添加问题所在,您没有包括您遇到的问题。

      但我希望它是以下内容:

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

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

      为什么要使用 Arrays.ToString()?

       String rankstr = (rank[idx]);
       String suitStr = (suit[idx]);
          System.out.println("The card you picked is " + rankStr + " of " + suitStr);
      

      【讨论】:

        【解决方案4】:

        您正在重复变量名称idxrandom,选择不同的名称并输出如下:

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

        实时 Java 示例:

        http://ideone.com/9asht6

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-10-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-20
          • 1970-01-01
          • 2021-08-11
          相关资源
          最近更新 更多