import java.util.Random;/*** @author lishengchen* @version 1.0* @Date 2020/11/26*/
public class Test5 {public static void main(String[] args) {/*** 生成6位的短信验证码* 那种效率高*/int sum = 1000000;//方案一  通过随机数--->字符串,然后截取的方式long start = System.currentTimeMillis();
//        int count = 0;for (int i = 0; i < sum; i++) {String code = (Math.random() + "").substring(2, 8);
//            if(code.startsWith("0")){//                count++;
//            }}
//        System.out.println("startsWith0  count:"+count);long end = System.currentTimeMillis();System.out.println("方案一"+(end - start));//方案二  通过int类型直接组装然后转成字符串long start2 = System.currentTimeMillis();for (int i = 0; i < sum; i++) {String code = String.valueOf((int)((Math.random()*9+1)*Math.pow(10,5)));/*if(code.startsWith("0")){System.out.println(code);}*/}long end2 = System.currentTimeMillis();System.out.println("方案二"+(end2 - start2));//方案三long start3 = System.currentTimeMillis();for (int i = 0; i < sum; i++) {String code = String.valueOf(new Random().nextInt(900000) + 100000);/*if (code.startsWith("0"))System.out.println(code);*/}long end3 = System.currentTimeMillis();System.out.println("方案三"+(end3 - start3));}
}

结论:方案一是 通过随机数—>字符串,然后通过字符串的截取方式,而方案二和方案三都是直接操作基本数据类型,最后转成字符串的,所以方案二和方案三效率更优,但是通过方案一是可以生产0开头的6位纯数字验证码,而方案二三都没有以0开头的,在没有特殊要求的情况下方案二三是可以用的,效率是方案一的5-10倍左右;

生成6位纯数字验证码的三种方式相关推荐

  1. Java 生成6位纯数字验证码 发短信验证码处使用

    @Testpublic void randomCodeTest() {Random random = new Random();for (int i = 0; i < 10000; i++) { ...

  2. mysql生成18位纯数字id_MySQL实现注册时随机生成数字id,类似于注册qq时随机生成qq号...

    首先根据长度需求通过java的随机函数java.util.Random生成随机数,如希望得到5位随机id,则可以使用如下语句 int r = (new Random()).nextInt()%8999 ...

  3. UUID生成10位纯数字

    public static void main(String[] args) {int hashCode = java.util.UUID.randomUUID().toString().hashCo ...

  4. 8-20位大小写数字特殊符号三种及三种以上

    ^(?![A-Za-z]+$)(?![A-Z\\d]+$)(?![A-Z\\W]+$)(?![a-z\\d]+$)(?![a-z\\W]+$)(?![\\d\\W]+$)\\S{8,20}$ /^(? ...

  5. spring boot 生成初始和销毁对象方法的三种方式

    配置文件 //注解类 @Configuration public class Config { //初始化提示和销毁提示 one :通过实现接口方法 @Beanpublic Cat createCat ...

  6. php生成10万个字符串,有什么好的方法可以生成十万条不重复的13位纯数字字符串...

    有什么好的方法可以生成十万条不重复的13位纯数字字符串 回复内容: 有什么好的方法可以生成十万条不重复的13位纯数字字符串 一个个来.从13个0开始,一次加1... 可用时间戳来生成,或者后面再加随机 ...

  7. java 随机16位随机数字_随机生成防猜不重复的16位纯数字序列号【快速且高性能】...

    16位纯数字,组合起来是多少个呢?很难一口说出准确数字. 2位纯数字,组合起来是多少个呢? 10*10 = 100个 3位纯数字,组合起来是多少个呢? 10*10*10 = 1000个 因为每个数字都 ...

  8. 生成x位随机数字密码、验证码、字符密码

    1.生成x位随机数字密码public String getRandomNum (int length){String num = "";for (int i=0;i<leng ...

  9. java生成验证码的三种方法

    java生成验证码的三种方法 第一种:导入jar包com.github.axet生成法 ①导包 <dependency><groupId>com.github.axet< ...

最新文章

  1. python 画折线图怎么控制x轴间隔_如何在折线图的分类轴(xaxis)上指定标签之间的间隔?...
  2. iPad导入Mac:非常快!一气呵成,直接去photo里面选择,之后左上角倒出就好,颠覆之前windows上面的认知!
  3. C# 网站静态页面生成器 for 多线程版
  4. 【蓝桥杯Java_C组·从零开始卷】第三节、while循环do while循环for循环(超重点)break终止循环continue结束本次循环
  5. [当人工智能遇上安全] 6.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例
  6. 消息中间件系列(七):如何从0到1设计一个消息队列中间件
  7. Log4j的应用实例
  8. 高级技巧之使用定时任务
  9. 小程序引发的深层思考
  10. php项目源码发布linux,php代码上传到linux服务器无法正常显示
  11. linux内核阻塞IO
  12. 计算机主板光驱插口,如何查看笔记本光驱位和主板的SATA接口版本
  13. jtopo 实现一键布局
  14. window计算机桌面的组成,windows的桌面包括哪些组成部分
  15. TCP/IP 系列之你真的知道什么叫做IP吗?
  16. 目标检测YOLO实战应用案例100讲-基于深度学习的显著性目标检测研究与应用(论文篇)
  17. 中国智能电饭煲行业市场供需与战略研究报告
  18. Navicat怎样导入Excel表格和txt文本的数据
  19. 定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。
  20. svg实现多个元素拖拽

热门文章

  1. 河南省南阳市谷歌高清卫星地图下载
  2. 吃瓜(西瓜书-南瓜书)1、2章
  3. 网页实现文件打包下载
  4. SSM+jsp实现医院住院管理系统(已开源)
  5. 一步步展示如何用C#和ACCESS编写一个登录界面
  6. ...\WEB-INF\lib\classmate-1.3.4.jar (系统找不到指定的文件。)
  7. ATOM编辑器下载及使用
  8. c语言arc函数带几个参数,ARC的使用简要总结
  9. ACREL-5000能耗管理系统在田阳县人民医院的应用
  10. 金融科技大数据产品推荐: 换汇API/海外支付API——让跨境支付更简单