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位数的方法总结的更多相关文章

  1. java生成随机六位数的验证码&随机生成十位数ValidCode码,用于邮件的验证&检查是不是符合为合法的中国的手机号码

    package com.demo.test1; import java.security.NoSuchAlgorithmException; import java.security.SecureRa ...

  2. Java实现获取一个随机的两位数

    import java.util.Random; //获取一个随机的 两位数public class getrandomdouble { public static void main(String[ ...

  3. java list随机打乱

    java list随机打乱package arrlist; import java.util.ArrayList; import java.util.Collections; import java. ...

  4. php生成随机产生六位数密码的代码

    php生成随机产生六位数密码的代码,供大家学习参考.本文转自:http://www.jbxue.com/article/6199.html php生成随机产生六位数密码的代码,供大家学习参考. 复制代 ...

  5. java 保留小数点后N位数(若干位),几种实现的方式总结

    import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;/** * java ...

  6. java生成随机字符串

    学习java comparable特性时候,定义如下Student类,需要需要随机添加学生姓名以及学号和成绩,这是java如何随机生成名字,根据我的查询,我找到目前java库支持两种方法. 1. or ...

  7. java 生成随机校验码

    1 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffe ...

  8. Java中产生随机数的两个方法

    Java中产生随机数的两个方法 一.利用random方法来生成Java随机数. 在Java语言中生成Java随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个 ...

  9. java 如何查看jdk版本&位数

      java 如何查看jdk版本&位数 CreateTime--2018年4月22日18:20:18 Author:Marydon 方式一:通过dos命令实现 win+R-->cmd-- ...

随机推荐

  1. Linux常用命令大全(分类)

    首先按ESC键回到命令模式: vi保存文件有不同的选项,对应于不同的命令,你可以从下面的命令中选择一个需要的::w 保存文件但不退出vi :w file 将修改另外保存到file中,不退出vi:w! ...

  2. [Oracle,2018-02-07] Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)

    报错的原因很清楚,就是你要删除的记录是另外某条记录的外键,解决办法: 1.删除子记录,在删除本记录: 2.暂时禁用此外键(适合在测试后清除所有记录的情况,记得最后要恢复此外键) 解决办法有了,现在最主 ...

  3. kettle实现多表同步

    本样例实现源库的所有表到目标库的同步sqlserver=>mysql(目标表存在表结构则同步),总调度如下: 由于复制记录到结果保存了多个表名,存在多个值,在高级选择对每个输入行执行一次进行循环 ...

  4. leetcode33

    class Solution { public: int search(vector<int>& nums, int target) { //这个题是给一个排序数组,但是数组里面内 ...

  5. C++ 日志生成 DLL

    示例: #define log_dbg(format,args...) \        printf("[DBG] [%s: %s() line:%d]: "format ,__ ...

  6. ArcGIS自定义工具箱-显示地图文档结构

    ArcGIS自定义工具箱-显示地图文档结构 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:显示地图文档mxd的数据组织结构,数据框,图层,表 使用方法: 地图 ...

  7. JDBC缺点分析

    * JDBC代码繁琐,每一次JDBC都需要编写“同样”的六步. * sql不能配置,在JDBC编程中sql语句是写在java源程序当中的,sql语句经常会发生改变(业务发生了改变),sql改变之后,需 ...

  8. python--第十天总结(IO多路复用)

    服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking IO):默认创建的s ...

  9. POJ-1797.HeavyTransportation(最长路中的最小权值)

    本题思路:最短路变形,改变松弛方式即可,dist存的是源结点到当前结点的最长路的最小权值. 参考代码: #include <cstdio> #include <cstring> ...

  10. http 连接 analysis service (ssas)

    当数据仓库搭建好后,我们就可以通过sqlserver的管理工具查看服务器上的数据集了.但是这样挺不方便的,如果要远程访问,那么就可以通过http来连接数据仓库.要配置数据仓库http连接非常的简单.如 ...