Java中的随机类
我正在使用Java创建一个预订系统,我想创建一个随机ID号。(我要展示的代码并不是我的类中所有的代码,它只是相关的东西。) 我命名了一个字段randomGenerator,它是一个随机对象,并在我的构造函数中声明了它:Java中的随机类,java,random,Java,Random,我正在使用Java创建一个预订系统,我想创建一个随机ID号。(我要展示的代码并不是我的类中所有的代码,它只是相关的东西。) 我命名了一个字段randomGenerator,它是一个随机对象,并在我的构造函数中声明了它: public class ReservationSystem { private Random randomGenerator; public ReservationSystem() { randomGenerator = new Ra
public class ReservationSystem {
private Random randomGenerator;
public ReservationSystem() {
randomGenerator = new Random();
}
然后这就是我遇到困难的方法:
public void generateCustomerID(String id, int numbersInID) {
//incNumber stands for incremented number
int incNumber = 1;
//create a new array of numbers as big as the user has defined
int[] numbers = new int[numbersInID];
while(numbersInID < (incNumber +1)) {
//add a new number to the array between 0 and 10
numbers[incNumber] = randomGenerator.nextInt(10);
incNumber++;
}
System.out.print(id);
for(int number: numbers)
System.out.print(number);
}
我已经收到了输出AB-000- 在Java中,数组的索引从0开始,而不是从1开始
- 当
为3时,条件numbersind
错误,循环体将不会执行numbersind
public void generateCustomerID(String id, int numbersInID) {
//incNumber stands for incremented number
int incNumber = 0;
//create a new array of numbers as big as the user has defined
int[] numbers = new int[numbersInID];
while(incNumber < numbersInID) {
//add a new number to the array between 0 and 10
numbers[incNumber] = randomGenerator.nextInt(10);
incNumber++;
}
System.out.print(id);
for(int number: numbers)
System.out.print(number);
}
public void generatecustomeId(字符串id,int-numbersind){
//incNumber代表递增的数字
int incNumber=0;
//创建一个与用户定义的数字一样大的新数组
int[]数字=新的int[numbersind];
while(incNumber
- 在Java中,数组的索引从0开始,而不是从1开始
- 当
为3时,条件numbersind
错误,循环体将不会执行numbersind
public void generateCustomerID(String id, int numbersInID) {
//incNumber stands for incremented number
int incNumber = 0;
//create a new array of numbers as big as the user has defined
int[] numbers = new int[numbersInID];
while(incNumber < numbersInID) {
//add a new number to the array between 0 and 10
numbers[incNumber] = randomGenerator.nextInt(10);
incNumber++;
}
System.out.print(id);
for(int number: numbers)
System.out.print(number);
}
public void generatecustomeId(字符串id,int-numbersind){
//incNumber代表递增的数字
int incNumber=0;
//创建一个与用户定义的数字一样大的新数组
int[]数字=新的int[numbersind];
while(incNumber
问题在于:
while(numbersInID < (incNumber +1)) { // ← *here*
//add a new number to the array between 0 and 10
numbers[incNumber] = randomGenerator.nextInt(10);
incNumber++;
}
问题在于:
while(numbersInID < (incNumber +1)) { // ← *here*
//add a new number to the array between 0 and 10
numbers[incNumber] = randomGenerator.nextInt(10);
incNumber++;
}
我不明白你为什么要一位数一位数地生成数字。如果你需要一个3位数的数字,只需要一个0-999之间的随机数。但是,您的方法有一个更基本的问题,即它不会检测ID冲突!我已经考虑过了!我该如何制作一个真正唯一的数字呢?如果你想让这些数字是随机的,你只需在每次检测到碰撞时不断获取一个新的随机数字。一旦你的数字快用完了,这会让你慢下来。另一种方法是保留一个未分配数字的列表,随机选取一个数字,然后每次都将其删除。我不明白你为什么要尝试逐位生成数字。如果你需要一个3位数的数字,只需要一个0-999之间的随机数。但是,您的方法有一个更基本的问题,即它不会检测ID冲突!我已经考虑过了!我该如何制作一个真正唯一的数字呢?如果你想让这些数字是随机的,你只需在每次检测到碰撞时不断获取一个新的随机数字。一旦你的数字快用完了,这会让你慢下来。另一种方法是保留一个未分配数字的列表,随机选取一个数字,然后每次都将其删除。@GeorginaBeckett此代码将只随机分配三个数字中的中间数字。你确定这就是你想要的吗?@GeorginaBeckett这段代码只会随机化三个数字中的中间数字。你确定这就是你想要的吗?