java-如何生成6位随机十六进制值

时间:2018-06-18 07:31:07

标签: java android random

我在Android应用中有一个场景,其中必须使用6位数生成随机十六进制值。 (值的范围可以是十六进制或整数值。)

最有效的方法是什么? 我是否必须生成随机十进制数,然后将其转换为十六进制?要么  可以直接生成一个值吗?

3 个答案:

答案 0 :(得分:4)

    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);

答案 1 :(得分:3)

您可以在程序中使用十六进制文字,与十进制文字相同。十六进制文字以0x为前缀。您的最大值为FFFFFF,因此在您的程序中,您可以编写

int maxValue = 0xFFFFFF;

然后你需要在该范围内生成随机数。像往常一样使用Random课程。

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

请注意使用maxValue + 1,因为nextInt()的上限是独占的。

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

System.out.printf("%06X", myValue);

答案 2 :(得分:1)

SecureRandom random = new SecureRandom();
int num = random.nextInt(1000000);
String formatted = String.format("%05d", num); 
System.out.println(formatted);

代码说明

  1. 此随机对象使用SecureRandom Class方法。此类用于生成随机数。

    SecureRandom random = new SecureRandom();
    
  2. next int num object store 6位随机数

    int num = random.nextInt(1000000);