java-如何在指定的值范围内生成随机的十六进制值

2022-09-03 12:17:03

我在Java Web应用程序中有一个场景,其中必须生成一个随机的十六进制值。此值应在我指定的值范围内。(值的范围可以是十六进制值或整数值)。

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


答案 1

是的,您只需在范围中生成一个十进制值。例如:

Random rand = new Random();
int myRandomNumber = rand.nextInt(0x10) + 0x10; // Generates a random number between 0x10 and 0x20
System.out.printf("%x\n",myRandomNumber); // Prints it in hex, such as "0x14"
// or....
String result = Integer.toHexString(myRandomNumber); // Random hex number in result

十六进制和十进制数字在Java中的处理方式相同(作为整数),只是显示或输入方式不同。(更多信息


答案 2

试试这个,

String s = String.format("%x",(int)(Math.random()*100));
System.out.println(s);