java 随机 long_如何在java中生成一个15位长的随机数

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:

Java random number with given length

我一直试图在java中生成一个15位长的数字,但似乎我没有做到这一点,使用:

这最多可产生10位数字。

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位十进制数字。 这是在将数字转换为字符串时实现的,例如:

System.out.println(String.format("%015d", 1));

// prints: 000000000000001

如果要生成介于100,000,000,000,000和999,999,999,999,999之间的随机数,则可以执行以下操作:

Random random = new Random();

long n = (long) (100000000000000L + random.nextFloat() * 900000000000000L);

如果您的最终目标是使用包含随机十进制数字的15个字符的字符串,并且您对第三方库感到满意,请考虑Apache commons RandomStringUtils:

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类,我们也可以创建安全随机数和唯一数。

public Serializable generate(SessionImplementor session, Object object)

throws HibernateException {

String uuid = (String)super.generate(session, object);

return uuid.substring(uuid.length()-15, uuid.length());

}

我认为这是生成唯一和随机数的最佳方式......

谢谢,但我已经尝试过,我无法让这个工作。它创建了很多运行时和编译错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值