有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中生成100个随机的3位数?

我需要生成100个随机的3位数。我已经想出了如何生成一个3位数的数字。如何生成100?这是我到目前为止所拥有的

import java.util.Random;

public class TheNumbers {
    public static void main(String[] args) {
      System.out.println("The following is a list of 100 random" + 
          " 3 digit numbers.");
      Random rand= new Random();

          int pick = rand.nextInt(900) + 100;
          System.out.println(pick);


}

}


共 (2) 个答案

  1. # 1 楼答案

    如果3位数字包括以0开头的数字(例如,如果您正在生成PIN码),例如000、011、003等,则此解决方案是另一种选择

    Set<String> codes = new HashSet<>(100);
    Random rand = new Random();
    while (codes.size() < 100)
    {
       StringBuilder code = new StringBuilder();
       code.append(rand.nextInt(10));
       code.append(rand.nextInt(10));
       code.append(rand.nextInt(10));
    
       codes.add(code.toString());
    }
    
    for (String code : codes) 
    {
        System.out.println(code);
    }
    
  2. # 2 楼答案

    基本概念是使用for-next循环,在该循环中,您可以重复计算所需的次数

    你应该看看The for Statement了解更多细节

    Random rnd = new Random(System.currentTimeMillis());
    for (int index = 0; index < 100; index++) {
        System.out.println(rnd.nextInt(900) + 100);
    }
    

    现在,这并不排除生成重复项。您可以使用Set来确保值的唯一性

    Set<Integer> numbers = new HashSet<>(100);
    while (numbers.size() < 100) {
        numbers.add(rnd.nextInt(900) + 100);
    }
    for (Integer num : numbers) {
        System.out.println(num);
    }