【发布时间】:2021-05-31 18:43:15
【问题描述】:
我想创建一个随机数字字符串,其中起始数字应在 1-9 的范围内,它只选择单个数字,之后 2 个随机数字应该在 10-99 的范围内。
表示范围为 1-10,假设选择了 1,而第 2 位和第 3 位的数字范围应在 10-99 之间。
喜欢 111、245...
第二个数字不应为单个数字。
尝试过的代码:
int random1 = new Random().nextInt((9 - 1) + 1) + 1;
int random2 = new Random().nextInt((99 - 10) + 1) + 10;
textSelectedFileName.setText(String.valueOf(random1+random2));
【问题讨论】:
-
我认为它需要是这样的: Random r = new Random(); int random1 = r.nextInt(9); int random2 = r.nextInt(89)+10;您可以在此处查看文档:developer.android.com/reference/java/util/Random#nextInt(int)
-
NextInt 采用单个参数是它可以返回的“最大值”值,意思是,在 random1 中,你基本上是说你可以获得的最小值是 0,最大值是 10,然后你加 1为此,它可以生成 0 到 11 之间的任何数字
-
您不应该在创建字符串之前添加整数。您应该首先从每个随机
ints 创建两个字符串,然后连接这些字符串以创建您的三位数字符串。 -
虽然对于 random2 你说最大值是 100,所以它也可以生成“100”,你可以得到类似 11100 的东西
-
另外,正如@maloomeister 提到的,添加数字会将它们视为整数。意思是,如果 random1 是 9 而 random2 是 40,你不会像你想要的那样得到 940,但你会得到 49 你可以将它们单独转换为字符串并将它们组合起来,我并不真正推荐,或者你可以简单地改变除了:(random1*100)+random2
标签: java android random numbers