java 6位随机数_关于java:生成6位数的随机数

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

我只想生成6位数的随机数,范围应该从000000到999999开始。

new Random().nextInt(999999)正在返回我的号码,但它不是6位数。

没有000000这样的数字。 数字是0,可以在其显示表示中填充到"000000",但0与000000的数字相同。 如果您想要6位数字,则需要100000到999999范围内的数字。 如果你需要一个6位数字符串,生成一个几乎和你一样的数字(参见下面我对Karol的评论),然后通过填充到6位数字转换为字符串。

所以你只想生成100000到999999之间的数字?

显示时,数字是强制显示"000000"而不是"0"吗?

谢谢,我得到了解决方案。

就这么简单,你可以使用你的代码,只需在这里做一件事

String.format("%06d", number);

这将以字符串格式返回您的号码,因此"0"将为"000000"。

这是代码。

public static String getRandomNumberString() {

// It will generate 6 digit random Number.

// from 0 to 999999

Random rnd = new Random();

int number = rnd.nextInt(999999);

// this will convert any number sequence into 6 character.

return String.format("%06d", number);

}

还有一件事,你不能得到"000000"作为数字,在数字上它只是"0",这就是我在这里返回字符串的原因。

我明白了,这很好。

如果您需要一个六位数字,则必须从100000开始

int i = new Random().nextInt(900000) + 100000;

前导零没有效果,000000与0相同。如果您使用的是Java 7+,则可以使用ThreadLocalRandom进一步简化它:

int i = ThreadLocalRandom.current().nextInt(100000, 1000000)

899999 - > 900000,因为nextInt保证生成小于其参数的数字。

第二个语句应该是ThreadLocalRandom.current()。nextInt(100000,1000000),以覆盖最多6位数到999999。

这是java中生成6位随机码的代码。

import java.util.*;

public class HelloWorld{

public static void main(String []args)

{

Random r=new Random();

HashSet set= new HashSet();

while(set.size()<1)

{

int ran=r.nextInt(99)+100000;

set.add(ran);

}

int len = 6;

String random=String.valueOf(len);

for(int  random1:set)

{

System.out.println(random1);

random=Integer.toString(random1);

}

}

}

我知道这很困难,但你可以这样做:

为BinaryNumber创建一个类;

创建一个构造函数,生成一个6个字符的char [],其中每个单元都使用0到1的随机数生成

覆盖toStrig()方法,以便它可以将数字char []作为字符串返回,如果要显示它。然后创建一个方法toInt(),通过带有for的char对字符串char进行esamin,并通过将当前数字乘以10加到i的pow来将其转换为十进制基数:

char[] digits = {‘1’ , ‘0’ , ‘1’ , ‘1’ , ‘0’ , ‘1’};

//random

int result = 0;

for( int i = 0; i < digits.length; i++) {

result += Integer.parseInt(digits[i]) * Math.pow(10, i);

}

return result;

1 + nextInt(2)应始终给出1或2.然后将其乘以10000以满足您的要求,然后在[0..9999]之间添加一个数字。

已经在这里解决了

public int gen()

{

Random r = new Random( System.currentTimeMillis() );

return ((1 + r.nextInt(2)) * 10000 + r.nextInt(10000));

}

public int gen() { Random r = new Random( System.currentTimeMillis() ); return ((1 + r.nextInt(2)) * 10000 + r.nextInt(10000)); }

您可以编辑您的答案,以包含上述评论中的代码块等其他信息。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值