我需要生成100个随机3位数字。我已经弄清楚如何生成1位数字。我如何生成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);
}
}
答案 0 :(得分:5)
基本概念是使用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);
}
答案 1 :(得分:2)
尝试for loop
for(int i=0;i<100;i++)
{
int pick = rand.nextInt(900) + 100;
System.out.println(pick);
}
答案 2 :(得分:2)
如果您将以下代码改编为问题
for(int i= 100 ; i < 1000 ; i++) {
System.out.println("This line is printed 900 times.");
}
,它会做你想要的。
答案 3 :(得分:0)
使用问题Generating random numbers in a range with Java的答案:
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 nums.");
Random rand = new Random();
for(int i = 1; i <= 100; i++) {
int randomNum = rand.nextInt((999 - 100) + 1) + 100;
System.out.println(randomNum);
}
}
答案 4 :(得分:0)
如果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);
}