java实现随机产生6位数的方法总结
package com.yin.test; import java.util.Random; import org.junit.Test; /**
* @author v_yinyl
* @date 2018-11-22 下午4:10:46
* @version 18.2B
* 产生随机六位数的五种方法
*/
public class TestMath
{
/**
1. 用math.random()实现,比较麻烦的一种方式,思路是:math.random()生成的是[0.0, 1.0)的伪随机数,
如果 当前值是0.9...,则直接*1000000返回,其他情况可能生成0.8...,0.03...,0.0003...,
这些情况都*1000000,但是结果可能是6位,5位,4位都有可能,那么再加上100000,肯定就保证是6位了。
*/
public void random1(){
int intFlag = (int)(Math.random() * 1000000); String flag = String.valueOf(intFlag);
if (flag.length() == 6 && flag.substring(0, 1).equals("9"))
{
System.out.println(intFlag);
}
else
{
intFlag = intFlag + 100000;
System.out.println(intFlag);
}
}
/**
2. 面试可以用到的一种方式,一行代码实现,思路是:math.random()范围是[0.0, 1.0),
那么math.random()*9+1一定是小于10的,(Math.random()*9+1)*100000一定是<10*100000=1000000的一个数
*/
public void random2(){
System.out.println((int)((Math.random()*9+1)*100000));
} /**
3. random.nextInt(10)意思是返回大于等于0,小于10的一个正整数, 既然是生成6位随机数,每个数一定是0-9之内的,我循环6次,
每次从0-9随机选取一个数字拼接字符串返回,不就行了
*/
public void random3(){ Random random = new Random();
String result="";
for (int i=0;i<6;i++)
{
result+=random.nextInt(10);
}
System.out.println(result);
} /**
4. random.nextInt(10)知道是什么意思了,最大的6位数是999999,最小的六位数是100000,我想到了下面的方法:
*/
@Test
public void random4(){
for (int i = 0; i <= 100; i++)
{
int flag = new Random().nextInt(999999);
if (flag < 100000)
{
flag += 100000;
}
System.out.println(flag);
}
} /**
5. 最后的一种方法,是引入了一个source字符串,从这个字符串里可以随机生成一个子串返回,很多pc网站用这个方法生成带字母数字的验证码,原理类似3
*/
public void random5(){
String source = "0123456789";
Random random = new Random();
StringBuffer flag = new StringBuffer();
for(int j=0;j<6;j++){
flag.append(source.charAt(random.nextInt(10)));
}
System.out.println(flag.toString());
}
}
java实现随机产生6位数的方法总结的更多相关文章
- java生成随机六位数的验证码&随机生成十位数ValidCode码,用于邮件的验证&检查是不是符合为合法的中国的手机号码
package com.demo.test1; import java.security.NoSuchAlgorithmException; import java.security.SecureRa ...
- Java实现获取一个随机的两位数
import java.util.Random; //获取一个随机的 两位数public class getrandomdouble { public static void main(String[ ...
- java list随机打乱
java list随机打乱package arrlist; import java.util.ArrayList; import java.util.Collections; import java. ...
- php生成随机产生六位数密码的代码
php生成随机产生六位数密码的代码,供大家学习参考.本文转自:http://www.jbxue.com/article/6199.html php生成随机产生六位数密码的代码,供大家学习参考. 复制代 ...
- java 保留小数点后N位数(若干位),几种实现的方式总结
import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;/** * java ...
- java生成随机字符串
学习java comparable特性时候,定义如下Student类,需要需要随机添加学生姓名以及学号和成绩,这是java如何随机生成名字,根据我的查询,我找到目前java库支持两种方法. 1. or ...
- java 生成随机校验码
1 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffe ...
- Java中产生随机数的两个方法
Java中产生随机数的两个方法 一.利用random方法来生成Java随机数. 在Java语言中生成Java随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个 ...
- java 如何查看jdk版本&位数
java 如何查看jdk版本&位数 CreateTime--2018年4月22日18:20:18 Author:Marydon 方式一:通过dos命令实现 win+R-->cmd-- ...
随机推荐
- UEditor (富文本编译器)
下载网址:https://ueditor.baidu.com/website/download.html 开发文档:http://fex.baidu.com/ueditor/
- idea本地跑代码和链接开发机设置
- python 处理 https链接 socket报错 链接https
// socket 链接 https 有问题 得去看看ssl文档 用法 import socketimport ssl def https_test(url): proto = "http& ...
- leetcode62
使用排列组合计算公式来计算,注意使用long long型数据保证计算不会溢出. class Solution { public: int M, N; ; //从根到叶子有多少个分支,就表示有多少种路径 ...
- JavaScript学习-3——数组、函数、递归
本章目录 -----------①数组 -----------②函数 -----------③递归 一.数组 弱类型:任何类型数据,且没有强度限制: 强类型:同一类型的数据存储的集合(内存中连续存储) ...
- javascript:控制台详解
javascript工具——浏览器控制台详解 大神这篇博客是写在2011年,主要介绍 “Firefox” 浏览器插件 “Firebug” 的操作,如今主流浏览器对控制台都已经提供了很好的支持.我自己 ...
- eclipse git(版本回退)
https://www.cnblogs.com/duex/p/6389999.html
- EL表达式与标签库
https://blog.csdn.net/panhaigang123/article/details/78428567
- 8.24 关于valid.js
这是昨天遇到的一个问题. js文件的validator函数里面套用了框架,但是页面上报错,说这不是一个函数..找了wd ht调都不知道怎么回事 后来jf哥说,是因为html页面没有引入valid.js ...
- canvas(三) star- demo
/** * Created by xianrongbin on 2017/3/8. * 本例子使用渐变画出 璀璨星空 */ var dom = document.getElementById('clo ...