当前位置: 首页 > 知识库问答 >
问题:

如何从两个不同的数组中选择字符串,并随机组合每个数组中的元素?[重复]

山鸿彩
2023-03-14

用户必须在两个不同的数组中输入任意数量的名词和形容词。(每个阵列至少3个)。示例数组A用户输入apple、pair、orange。数组b=绿色、甜蜜、腐烂、蓝色。现在我需要随机选择形容词,并将它们添加到名词中。比如甜苹果,烂苹果等等。。。我不能用同一个词两次,我需要用数学。随机()。你怎么能做到?

public static void main(String[] args) {
    String[] Noun = new String[4];
    String[] Adj = new String[4];
    int numbOfNouns = 0;
    int numbOfAdj = 0;

    Scanner kb = new Scanner(System.in);
    System.out.println("How many nouns ? min 3");
    numbOfNouns = kb.nextInt();

    while (numbOfNouns < 3) {
        System.out.println("How many nouns ? min 3");
        numbOfNouns = kb.nextInt();
    }

    System.out.println("Enter " + numbOfNouns + " nouns");
    for (int i = 0; i <= numbOfNouns; i++) {
        Noun[i] = kb.nextLine();
    }

    System.out.println("How many adjectives ? min 3");
    numbOfAdj = kb.nextInt();


    while (numbOfAdj < 3) {
        System.out.println("How many adjectives ? min 3");
        numbOfAdj = kb.nextInt();
    }

    System.out.println("Enter " + numbOfAdj + " adjectives");

    for (int i = 0; i <= numbOfAdj; i++) {
        Adj[i] = kb.nextLine();
    }

}

共有1个答案

徐飞尘
2023-03-14

您可以使用为列表设计的集合洗牌方法,如下所示:

List<String> arrayNoun = Arrays.asList(Noun);
Collections.shuffle(arrayNoun);

List<String> arrayAdj = Arrays.asList(Adj);
Collections.shuffle(arrayAdj);

顺便说一下,我认为你必须像这样修复整个代码:

public static void main(String[] args) {
    // when you ask user to enter number of objects in your array then you cannot define fix array size!
    String[] Noun;
    String[] Adj;

    int numbOfNouns = 0;
    int numbOfAdj = 0;

    Scanner kb = new Scanner(System.in);

    // the whole while loop can handle reading the number of nouns and so there is no need to call this code once before the loop!
    while (numbOfNouns < 3) {
        System.out.println("How many nouns ? min 3");
        numbOfNouns = kb.nextInt();
        kb.nextLine(); // get enter key after number enter
    }

    // here you define size of your array according to user input
    Noun = new String[numbOfNouns];

    System.out.println("Enter " + numbOfNouns + " nouns");
    for (int i = 0; i < numbOfNouns; i++) {
        Noun[i] = kb.nextLine();
    }

    while (numbOfAdj < 3) {
        System.out.println("How many adjectives ? min 3");
        numbOfAdj = kb.nextInt();
        kb.nextLine(); // get enter key after number enter
    }

    Adj = new String[numbOfAdj];

    System.out.println("Enter " + numbOfAdj + " adjectives");

    for (int i = 0; i < numbOfAdj; i++) {
        Adj[i] = kb.nextLine();
    }

    List<String> arrayNoun = Arrays.asList(Noun);
    Collections.shuffle(arrayNoun);

    List<String> arrayAdj = Arrays.asList(Adj);
    Collections.shuffle(arrayAdj);
}
 类似资料:
  • 我被分配了一项编程任务,但我被卡住了。其说明如下: 有一个名为“秘密圣诞老人”(给他们礼物)的游戏,有很多孩子参加。对于每个参与的孩子,都有一个来自参与孩子的秘密圣诞朋友。我必须编写一个程序,为每个参与的孩子挑选一个秘密的圣诞老人朋友。 示例:如果Bob,Alice,John和George是参与的孩子,在随机选择之后, 输出可能看起来像 具有相同输入的连续两次程序运行不应有相同的结果。 我的想法是

  • 问题内容: 假设我有一个数组,我想随机选择一个元素。 最简单的方法是什么? 明显的方法是。但是也许有红宝石之类的东西?或者如果不能通过扩展创建这种方法? 问题答案: Swift 4.2及更高版本 推荐的新方法是Collection协议的内置方法:。它返回一个可选参数以避免我以前假设的空情况。 如果不创建数组并且不能保证count> 0,则应执行以下操作: Swift 4.1及以下 只是为了回答您的

  • 假设我有一个数组,我想随机选择一个元素。 最简单的方法是什么? 最明显的方法是数组[随机索引]。但可能有类似ruby的数组。示例 ?或者,如果不是,那么可以使用扩展创建这样的方法吗?

  • 问题内容: 我正在寻找从整数数组中随机选择数字的解决方案。 例如我有一个数组,如何随机选择一个数字? 问题答案:

  • 问题内容: 我有一个字符串数组: 我从中得到随机元素: 现在我想获得当我按下按钮以获取随机水果时苹果所处的数字,例如当我按下randon按钮时,它给了我Banana ..并且还应该给我那个元素编号是 我得到了元素,但是获取元素编号有问题,所以请帮帮我 问题答案: 只需将生成的索引存储在变量中,然后使用此变量访问数组: PS我通常不喜欢每次随机化生成新对象-我更喜欢在程序中使用单个对象- 然后重新使

  • 问题内容: 我有一个数字值数组,我想从该数组中随机选择一个值,然后将其插入变量中。 我不确定您需要查看什么代码。所以, 这是我用来生成13个数字(1-13)并将其插入到数组中的循环。 效果很好,但是现在我需要从该数组中选择2个随机值(然后将其插入变量中,以备后用。 我到过很多网站,已经看到了类似的事情,例如将值插入到数组中,然后用于从数组中选择值,然后从数组中删除它。但是,无论何时我使用它都行不通