【问题标题】:Creating a random 4 digit number, and storing it to a string [duplicate]创建一个随机的 4 位数字,并将其存储到一个字符串中 [重复]
【发布时间】:2014-04-09 21:55:44
【问题描述】:

我正在尝试创建一个生成 4 位整数并将其存储在字符串中的方法。 4 位整数必须介于 1000 和 10000 以下。然后该值必须存储到 PINString。 这是我到目前为止所拥有的。我收到错误Cannot invoke toString(String) on the primitive type int。我该如何解决?

   public void generatePIN() 
   {

        //generate a 4 digit integer 1000 <10000
        int randomPIN = (int)(Math.random()*9000)+1000;

        //Store integer in a string
        randomPIN.toString(PINString);

    }

【问题讨论】:

  • 为什么要高于 1000。我认为 0050 是一个有效数字(虽然看起来很奇怪)。
  • 显然不是完全相同的副本,但使用相同的解决方案会出现相同的问题......所以。
  • 适用于那些寻求生成 OTP 引脚的人,这些引脚可能具有 0004、0032 或 0516 等值。这是代码。 Random random = new Random(); String generatePin = String.format("%04d", random.nextInt(10000)); System.out.println(generatePin);
  • 这是另一种方式。 Random random = new Random(); String generatePin = String.format("%04d", random.nextInt(10000000) % 10000); System.out.println(generatePin);

标签: java android


【解决方案1】:

你想使用PINString = String.valueOf(randomPIN);

【讨论】:

    【解决方案2】:

    制作一个String变量,将生成的int值拼接在里面:

    int randomPIN = (int)(Math.random()*9000)+1000;
    String val = ""+randomPIN;
    

    或者更简单

    String val = ""+((int)(Math.random()*9000)+1000);
    

    没有比这更简单的了;)

    【讨论】:

      【解决方案3】:

      randomPIN 是原始数据类型。

      如果要将整数值存储在String 中,请使用String.valueOf

      String pin = String.valueOf(randomPIN);
      

      【讨论】:

        【解决方案4】:

        使用字符串存储值:

           String PINString= String.valueOf(randomPIN);
        

        【讨论】:

          【解决方案5】:

          试试这个方法。 x 只是第一个数字。它是从 1 到 9。
          然后将其附加到另一个最多包含 3 位数字的数字。

          public String generatePIN() 
          {   
              int x = (int)(Math.random() * 9);
              x = x + 1;
              String randomPIN = (x + "") + ( ((int)(Math.random()*1000)) + "" );
              return randomPIN;
          }
          

          【讨论】:

          • (int)(Math.random()*9000)+1000; 有什么问题?
          • 没什么,我想。我误解了这个问题是关于什么的。我认为这与数字生成公式本身有关。
          猜你喜欢
          • 2021-08-23
          • 1970-01-01
          • 1970-01-01
          • 2022-09-27
          • 1970-01-01
          • 1970-01-01
          • 2021-10-23
          • 2011-03-15
          相关资源
          最近更新 更多