[英]java- how to generate a random hexadecimal value within specified range of values
[英]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);
代碼說明
這個隨機對象使用 SecureRandom 類方法。 這個類用於生成隨機數。
SecureRandom random = new SecureRandom();
next int num 對象存儲 6 個十六進制數字隨機數
int num = random.nextInt(0x1000000);
然后將 num 輸出為 6 位十六進制數
String formatted = String.format("%06x", num);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.