【问题标题】:how to generate random numbers of specific digits?如何生成特定数字的随机数?
【发布时间】: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


【解决方案1】:

您可以像这样生成随机数:

Random r = new Random();
int ran1 = r.nextInt(9)+1; // Will give values from 1-9
int ran2 = r.nextInt(90)+10; // Will give values from 10-99

然后您可以像这样创建字符串: 选项 1(不推荐):

String s1 = String.valueOf(ran1);
String s2 = String.valueOf(ran2);
textSelectedFileName.setText(s1+s2);

选项 2:

textSelectedFileName.setText(String.valueOf((ran1*100)+ran2));

【讨论】:

  • Opt2 有时会生成单个数字,否则 Opt1 工作正常。
  • 这将生成初始数字为 0..8 的代码;其他两位数 10..98
  • 根据 Gyro 建议编辑,可能会修复它
  • 这仍然无法满足初始数字不能为零的第一个要求
  • 猜猜我错过了非零部分,无论如何,已修复:)
【解决方案2】:

您也可以使用Math.random

int b = (int)(Math.random()*(max-min+1)+min)

例如(int)(Math.random()*(99-10+1)+10) //Generate random int value from 10 to 99

【讨论】:

    【解决方案3】:
    Random rand = new Random();
    
    int randomNum = rand.nextInt((maximumvalue - minmumvalue) + 1) + min;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 2016-09-10
      相关资源
      最近更新 更多