Java 从用户输入中获取随机生成的范围

Java 从用户输入中获取随机生成的范围,java,random,integer,Java,Random,Integer,所以我试图让我的代码根据用户的输入生成一个随机数。我现在的陈述没有产生正确的范围 secretNum = low + (int)(Math.random()* max); 其中,low是范围的最低部分,high是范围的最高部分。例如如果低值为5,高值为10,这会产生1-50的范围吗?(5*10)。我会用a来表示 您可以这样创建它: Random r = new Random(); int lowest = 10; int highest = 140; int randomMax = 1

所以我试图让我的代码根据用户的输入生成一个随机数。我现在的陈述没有产生正确的范围

  secretNum = low + (int)(Math.random()* max);
其中,low是范围的最低部分,high是范围的最高部分。例如如果低值为5,高值为10,这会产生1-50的范围吗?(5*10)。

我会用a来表示

您可以这样创建它:

Random r = new Random(); 
int lowest = 10;
int highest = 140;
int randomMax = 140-10;
int randomNumber = r.nextInt(randomMax) + 10;
从那以后,它就很容易使用了。对于从0(包含)到50(独占)的随机整数,只需执行以下操作:

int randomNumber = r.nextInt(50);
我想这会让你轻松很多。如果用户输入10和140,则执行以下操作:

Random r = new Random(); 
int lowest = 10;
int highest = 140;
int randomMax = 140-10;
int randomNumber = r.nextInt(randomMax) + 10;

这可能是最简单的方法。

将用户输入保存在中的变量

String in = sc.nextLine();
然后创建
java.util.Random
的实例,种子是输入的哈希:

Random r = new Random(in.hashCode());

int randomNumber = r.nextInt();
如果要生成一个介于最大值和最小值之间的随机数,请参阅 但是,你需要将C++转换成java:

C++:

爪哇:

如果只需要最大值,也可以使用
r.nextInt(max)

注: 对于加密安全的随机数,请使用SecureRandom的实例