zoukankan      html  css  js  c++  java
  • JAVA获取随机数

    Java获取随机数

      一、Java随机数的产生方式
      在Java中,随机数的概念从广义上将,有三种。
      1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
      2、通过Math.random()返回一个0到1之间的double值。
      3、通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。

          一般都用后两种方法:

    Random()
      创建一个新的随机数生成器。 他主要有两种方法产生随机数:

          一种是带种子的和另一种不带种子的 即带参或不带参数

    二:

      Random类使用说明
      1、带种子与不带种子的区别
      Random类使用的根本是策略分带种子和不带种子的Random的实例。
      通俗说,两者的区别是:
      带种子的,每次运行生成的结果都是一样的。
      不带种子的,每次运行生成的都是随机的,没有规律可言。
      2、创建不带种子的Random对象
      Random random = new Random();
      3、创建不带种子的Random对象
      有两种方法:
      1) Random random = new Random(555L);
      2) Random random = new Random();

    public class RandomUtilTest {
        public static final String allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        public static final String letterChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        public static final String numberChar = "0123456789";
    
        /**
         * 返回一个定长的随机字符串(只包含大小写字母、数字)
         * 
         * @param length
         *            随机字符串长度
         * @return 随机字符串
         */
        public static String generateString(int length) {
            StringBuffer sb = new StringBuffer();
            Random random = new Random();
            for (int i = 0; i < length; i++) {
                sb.append(allChar.charAt(random.nextInt(allChar.length())));
            }
            return sb.toString();
        }
    
        /**
         * 返回一个定长的随机纯字母字符串(只包含大小写字母)
         * 
         * @param length
         *            随机字符串长度
         * @return 随机字符串
         */
        public static String generateMixString(int length) {
            StringBuffer sb = new StringBuffer();
            Random random = new Random();
            for (int i = 0; i < length; i++) {
                sb.append(allChar.charAt(random.nextInt(letterChar.length())));
            }
            return sb.toString();
        }
    
        /**
         * 返回一个定长的随机纯大写字母字符串(只包含大小写字母)
         * 
         * @param length
         *            随机字符串长度
         * @return 随机字符串
         */
        public static String generateLowerString(int length) {
            return generateMixString(length).toLowerCase();
        }
    
        /**
         * 返回一个定长的随机纯小写字母字符串(只包含大小写字母)
         * 
         * @param length
         *            随机字符串长度
         * @return 随机字符串
         */
        public static String generateUpperString(int length) {
            return generateMixString(length).toUpperCase();
        }
    
        /**
         * 生成一个定长的纯0字符串
         * 
         * @param length
         *            字符串长度
         * @return 纯0字符串
         */
        public static String generateZeroString(int length) {
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < length; i++) {
                sb.append('0');
            }
            return sb.toString();
        }
    
        /**
         * 根据数字生成一个定长的字符串,长度不够前面补0
         * 
         * @param num
         *            数字
         * @param fixdlenth
         *            字符串长度
         * @return 定长的字符串
         */
        public static String toFixdLengthString(long num, int fixdlenth) {
            StringBuffer sb = new StringBuffer();
            String strNum = String.valueOf(num);
            if (fixdlenth - strNum.length() >= 0) {
                sb.append(generateZeroString(fixdlenth - strNum.length()));
            } else {
                throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth
                        + "的字符串发生异常!");
            }
            sb.append(strNum);
            return sb.toString();
        }
    
        /**
         * 根据数字生成一个定长的字符串,长度不够前面补0
         * 
         * @param num
         *            数字
         * @param fixdlenth
         *            字符串长度
         * @return 定长的字符串
         */
        public static String toFixdLengthString(int num, int fixdlenth) {
            StringBuffer sb = new StringBuffer();
            String strNum = String.valueOf(num);
            if (fixdlenth - strNum.length() >= 0) {
                sb.append(generateZeroString(fixdlenth - strNum.length()));
            } else {
                throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth
                        + "的字符串发生异常!");
            }
            sb.append(strNum);
            return sb.toString();
        }
    
        public static void main(String[] args) {
            System.out.println(generateString(6));
            //System.out.println(generateMixString(6));
            //System.out.println(generateLowerString(6));
            //System.out.println(generateUpperString(6));
            //System.out.println(generateZeroString(6));
            //System.out.println(toFixdLengthString(123, 15));
            //System.out.println(toFixdLengthString(123L, 15));
        }
    
  • 相关阅读:
    LiveGBS接入LiveQing流媒体服务实现摄像头云端录像和和直播以及大屏展示
    摄像头网络直播方案LiveGBS部署问题 使GB28181实现无插件web直播
    Linux 查看磁盘读写速度IO使用情况
    安防监控摄像头接入云端实现直播、录像和大屏展示
    H265摄像头如何实现网页直播
    解决RTMP推送时间戳问题引起HLS切片不均匀导致手机浏览器播放卡顿的问题
    H5实现无插件视频监控按需直播
    LiveQing视频云平台部署实践
    将RTSP网络摄像机进行网页和微信直播的方案
    Android虚拟机运行问题之小结
  • 原文地址:https://www.cnblogs.com/zhangyu0217----/p/6836536.html
Copyright © 2011-2022 走看看