我尝试了以下
int number = ThreadLocalRandom.current().nextInt(1000, 9999 + 1);
但它不会产生像0004,0035这样的4位数字......等等......
我搜索了类似的问题但没有解决,它们与我需要的不同,如果已经存在问题请告诉我。
我不需要像1485和0180这样的genarate数字,不仅仅是以0开头的数字。
答案 0 :(得分:1)
您生成的整数值将根据您的需要而正确。如果你想要总是有四个字符,你可以简单地将值写入带有前导零的字符串,就像这样;
String.format("%04d", number);
答案 1 :(得分:1)
这应该有效:
Random r = new Random();
String randomNumber = String.format("%04d", r.nextInt(1001));
System.out.println(randomNumber);
<强> EDIT1 强>
Random r = new Random();
String randomNumber = String.format("%04d", Integer.valueOf(r.nextInt(1001)));
System.out.println(randomNumber);
<强> EDIT2 强>
Random r = new Random();
String randomNumber = String.format("%04d", (Object) Integer.valueOf(r.nextInt(1001)));
System.out.println(randomNumber);
所有三个版本都应该有效。