How can I generate a random 15 digit-long in java
Possible Duplicate:
Java random number with given length
我一直试图在java中生成一个15位长的数字,但似乎我没有做到这一点,使用:
这最多可产生10位数字。
1 2
| Random random = new Random();
int rand15Digt = random. nextInt(15); |
我怎样才能成功生成它?
-
哦,我忘了补充一点,我用一个10的幂作为随机发生器的种子。 只是为了确保我有所需的位数。
-
随机种子不会影响输出的位数
-
您当前的代码生成一个介于0和15之间的int。您是否希望生成一个以十进制表示的十五个字符的数字?即 100,000,000,000,000和999,999,999,999,999之间的东西?
-
stackoverflow.com/questions/5392693/…
-
是的,完全是这样的。
-
这与swing,javascript或java-ee无关。 请仔细选择标签
-
是的,关于标签:对不起,但问题直到我添加它们才接受 - 它继续说"哎呀,问题不符合我们的要求"或类似的东西。 仍然抱歉。
-
就像我上面说的那样。 我添加了关于力量的东西,它适用于种子10及以下。 在它之上,它变得狂暴并且给出了奇怪的结果。
使用Random的方法public long nextLong()
-
好,谢谢。让我试一试
-
好吧,似乎很长时间没有任何参数,所以我怎样才能确保生成的数字是15位数?
首先,int可以保存-2,147,483,648和2,147,483,647之间的数字。
使用Random.nextLong()
-
@DuncanJones,000000000000012是15 digit result。 OP没有要求("10 + e15和10 + e16-1之间的数字")。
-
有道理!我将删除我的downvote。
-
我仍然没有得到如何确保我的结果长达15位数。到目前为止,.nextLong()的值大于15位。
-
@ user1825142您需要具体了解您的需求。正如SJuan76所述,如果您将其格式化,则任何数字都可以被视为x位数。如果您正在寻找特定的数字范围,请在问题中明确说明。
-
@DuncanJones - 考虑从100000000000000到999999999999999
-
@ SJuan76为快速抽奖-1道歉。我对你的回答做了一个小编辑,让我给出+1。
如何尝试BigInteger,请参阅此StackOverflow链接以获取更多信息Random BigInteger Generation
当以字符串形式呈现时,任何数字都可以格式化为15位十进制数字。 这是在将数字转换为字符串时实现的,例如:
1 2 3
| System. out. println(String. format("%015d", 1));
// prints: 000000000000001 |
如果要生成介于100,000,000,000,000和999,999,999,999,999之间的随机数,则可以执行以下操作:
1 2
| Random random = new Random();
long n = (long) (100000000000000L + random. nextFloat() * 900000000000000L ); |
如果您的最终目标是使用包含随机十进制数字的15个字符的字符串,并且您对第三方库感到满意,请考虑Apache commons RandomStringUtils:
1 2 3 4 5
| boolean useLetters = false;
boolean useNumbers = true;
int stringLength = 15;
String result = RandomStringUtils. random(stringLength, useLetters, useNumbers ) |
-
-1:OP询问了一个数字,而不是一个字符串。
-
好的,让我下载并尝试一下。我会尽快给你回复。
-
@SJuan76Touché:-)我假设他最终会使用一个字符串,但我可能错了。
-
@Duncan Jones;如何将这个RandomStringUtils库添加到我的代码中?或者我从哪里可以得到它。显然它已经在某处,但我无法下载或导入它,或直接使用它。
-
@Duncan Jones - 你也是对的。我最终将它用作字符串。那我怎么能让它工作。我的意思是添加到我的代码。
-
@ user1825142你需要下载commons lang。或者只是使用我在上面的问题中添加的技巧。
-
@ SJuan76这个问题早已死了,但我编辑了我的答案以反映可用的不同选项。
-
@Duncan Jones - 非常感谢。这很有效:) :)!
-
公平是公平的。在我年轻的时候,我也是一个快速下来的人:-)
在Hibernate中使用UUIDGenerator类,我们也可以创建安全随机数和唯一数。
1 2 3 4 5
| public Serializable generate (SessionImplementor session, Object object )
throws HibernateException {
String uuid = (String)super. generate(session, object );
return uuid. substring(uuid. length()-15, uuid. length());
} |
我认为这是生成唯一和随机数的最佳方式......
-
谢谢,但我已经尝试过,我无法让这个工作。它创建了很多运行时和编译错误。