如何随机获得4位数字,一下是我自己编写的,也能获得4位随机数,但是不知道是否还有其他方法获得

问题描述

boolean end=false; int s; Random ran=new Random();do{ s=ran.nextInt(9999); if(1000<s && s<9999){end=true; } }while(!end); System.out.println("会员编号:"+s);

解决方案

如果你的四位数字必须大于1000的话,那么你可以这么写:Random random = new Random();//random必须要做为成员变量或者静态变量,不能每次都new一个,否则就不具有随机性了。int s = random.nextInt(9000) + 1000;//这样的话s的范围一定是[1000,9999]如果你不方便把Random类声明成成员变量或者静态变量的话,可以用如下方法: int s = (int) (Math.random() * 9000) + 1000;因为Math类里面会维护一个静态的Random对象。
解决方案二:
楼上的回答都不错。。。
解决方案三:
/** * 产生指定范围内的随机数(仅限非负数) * @param min 最小范围 * @param containMin 是否包括这个最小范围(true:包括;false:不包括) * @param max 最大范围 * @param containMax 是否包括这个最大范围(true:包括;false:不包括) * @return 正常情况:>=0异常情况:-1 */public static int threadLocalRandom(int min,boolean containMin,int max,boolean containMax){if(min<0||max<0){return -1;}if(min>max){max=max^min;min=max^min;max=max^min;}Random random = new Random(); if(containMin==true&&containMax==true){//产生min-max之间的随机数(包括min和max,即[min,max])return random.nextInt(max-min+1)+min;}else if(containMin==true&&containMax==false){//产生min-max之间的随机数(包括min不包括max,即[min,max))return random.nextInt(max-min)+min;}else if(containMin==false&&containMax==false){//产生min-max之间的随机数(不包括min也不包括max,即(min,max))max=max-1;return random.nextInt(max-min)+min+1;}else{//产生min-max之间的随机数(不包括min包括max,即(min,max])min=min+1;return random.nextInt(max-min+1)+min;}}
解决方案四:
Random rand = new Random(); String a="";for(int i=0;i<4;i++){//通过字符串拼接 防止千位上为0;if(i==1&&rand.nextInt(9)==0){a+=(rand.nextInt(9)+1); }a+=rand.nextInt(9);//防止最后一位为0 如1000 你的需求是要大于1000if(i==3&&rand.nextInt(9)==0){a+=(rand.nextInt(9)+1);}} System.out.println(Integer.parseInt(a)); }
解决方案五:
r.nextInt(9000) + 1000其中r.nextInt(9000) 生成任意[0,9000)区间的随机整数,然后再加上1000,保证随机整数范围就是[1000,10000) (ps:方括号手表包括,圆包括表示不包括)
解决方案六:
依赖于apache的common包下的这个类import org.apache.commons.lang3.RandomStringUtilsRandomStringUtils.randomNumeric(4)自动产生4个数字

时间: 2024-10-27 03:35:38

如何随机获得4位数字,一下是我自己编写的,也能获得4位随机数,但是不知道是否还有其他方法获得的相关文章

C++实现输出三位数字的水仙花数

问题描述 C++实现输出三位数字的水仙花数 水仙花数是指一个n(>=3)位数字的数,它等于每个数字的n次幂之和. 编程输出3位水仙花数 解决方案 void main() { int n = 100; int a, b, c; for( n=100;n<=999;n++) { a = n/100; b = n/10%10; c = n%10; if ( n==(a*a*a+b*b*b+c*c*c)) { printf("%d %d %dn",a,b,c); } } }

Loadrunner随机生成15位数字串

Loadrunner随机生成15位数字串 PS:本人在51testing和sina blog上的文章全部为原创,转载请注明出处!! 今天看到一个网友的问题,是想生成一个15位的数字串来进行参数化输入,要求如下: 1.前4位均是0436 2.其余的是11位的随机数 原帖地址:http://bbs.51testing.com/viewthread.php?tid=89018&page=1&extra=page%3D1 拿到问题,我思考了一下,前4位使用固定值很好办,唯一的问题就是生成随机数了:

php生成4位数字验证码的实现代码_php技巧

在php中实现验证码还是很方便的,关键点在于掌握php gd库与session的用法. 纵观网上php 生成验证码的例子,无不是php gd库与session相结合,并利用php 生成随机数的方法来完成. PHP验证码,可以分为很多种,包括 php 图片验证码,php 随机验证码,以及php 中文验证码等,根据不同的应用场合来使用不同的验证码. 这里分享一个php数字验证码,供大家参考. 4位数字验证码 /* *Filename:authpage.php */ session_start();

【Android】设置EditText为仅输入数字且最多只能有两位数字

需求很简单,就是要设置一个EditText仅能输入数字且输入的数字中小数部分最多可以有两位. 第一步,很简单,在XML文件中,将EditText的inputType设置成NumberDecimal,多余的属性我就不写出来,只写出主要的部分: <EditText ... android:inputType="numberDecimal" ... /> 第二部,代码中修改EditText 的addTextChangedListener 方法,同样的先上代码,再来解释: Edit

java-JAVA连位数字判断如,1234 ,7890,8901,9012求解决

问题描述 JAVA连位数字判断如,1234 ,7890,8901,9012求解决 如题,求高手解答在线等,我现在只实现了,1234这种的不能实现8901这种的,public static boolean isDescNumeric(String numOrStr) { boolean flag = true; for (int i = 0; i < numOrStr.length(); i++) { if (i > 0) { int num = Integer.parseInt(numOrSt

excel中怎么将8位数字转换为日期格式?

  excel中怎么将8位数字转换为日期格式?            1.以EXCEL 2010为例:打开含有文本型日期的EXCEL表格文件,图中红框所示就是文本型日期,如图所示: 2.选中所有日期单元格,出现一个方形惊叹号,如图所示: 3.鼠标指向惊叹号,我们依次点击"倒三角"-〉"转换为数字": 4.点击后,这时文本型已经转换成数字型了,如图所示: 5.然后鼠标指向已选中的日期单元格,单击鼠标右键-〉"设置单元格格式": 6.弹出"

excel超过12位数字如何下拉递增和保存?

  下面为大家介绍excel超过12位数字如何下拉递增和保存方法,有需要的朋友可以参考本文,希望能对大家有所帮助! 方法/步骤 打开EXCEL,在A1输入前面的数字,超过12位的选择文本,在B1输入后几位数字. 往下拉 在C1输入=A1&B1 往下拉,就可以了.设置成文本格式,复制到新的EXCEL,就完成了. 以上就是excel超过12位数字如何下拉递增和保存方法介绍,操作很简单的,大家学会了吗?希望能对大家有所帮助!

javascript-java script 语句,判断用户名必须为8位数字的语句怎么写?

问题描述 java script 语句,判断用户名必须为8位数字的语句怎么写? 我在做一个用户注册页面,想用java script 语句,判断用户名必须为8位数字,这个语句怎么怎么写? 解决方案 <!DOCTYPE html> <html> <script type="text/javascript"> function validate(){ var reg = /^d{8}$/; //定义正则表达式 var obj = document.getE

算法-java有1234个数字能组成多少个有两个重复的3位数字

问题描述 java有1234个数字能组成多少个有两个重复的3位数字 java有1234四数字能组成多少个有两个重复的3位数字,java有1234四数字能组成多少个有两个重复的3位数字,java有1234四数字能组成多少个有两个重复的3位数字 解决方案 2 6*C 1234 解决方案二: 6*C下面是1234,上面是2 解决方案三: 如果我没理解错你的意思,那么这题是一个从四个数字中选出两个进行三位数字的排列组合的问题.根据大学(还是高中?)的排列组合知识就是: C2/4 乘以 3 =36种,具体

Extjs中用正则表达式输入必须是1-3位数字,不能有.和-

问题描述 Extjs中用正则表达式输入必须是1-3位数字,不能有.和- Extjs中用正则表达式输入必须是1-3位数字,不能有.和- 解决方案 ^[0-9]{1,3}$