簡體   English   中英

java-如何生成一個6位隨機十六進制值

[英]java- how to generate a 6 digit random hexadecimal value

我在 Android 應用程序中有一個場景,其中必須生成 6 位隨機十六進制值。 (值的范圍可以是十六進制或整數值)。

執行此操作的最有效方法是什么? 我是否必須生成一個隨機的十進制數,然后將其轉換為十六進制? 還是可以直接生成一個值?

    String zeros = "000000";
    Random rnd = new Random();
    String s = Integer.toString(rnd.nextInt(0X1000000), 16);
    s = zeros.substring(s.length()) + s;
    System.out.println("s = " + s);

您可以在程序中使用與十進制文字相同的方式使用十六進制文字。 十六進制文字以0x為前綴。 你的最大值是FFFFFF ,所以在你的程序中你可以寫

int maxValue = 0xFFFFFF;

然后您需要在該范圍內生成隨機數。 像往常一樣使用Random類。

Random r = new Random();
int myValue = r.nextInt(maxValue + 1);

請注意maxValue + 1的使用,因為nextInt()的上限是獨占的。

最后一步是打印出你的十六進制值。

System.out.printf("%06X", myValue);
SecureRandom random = new SecureRandom();
int num = random.nextInt(0x1000000);
String formatted = String.format("%06x", num); 
System.out.println(formatted);

代碼說明

  1. 這個隨機對象使用 SecureRandom 類方法。 這個類用於生成隨機數。

     SecureRandom random = new SecureRandom();
  2. next int num 對象存儲 6 個十六進制數字隨機數

    int num = random.nextInt(0x1000000);
  3. 然后將 num 輸出為 6 位十六進制數

    String formatted = String.format("%06x", num);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM