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));
        }
    
  • 相关阅读:
    SendMessage 关闭外部程序
    ShellApi 列举正在运行的程序
    SendMessage 关闭显示器
    ShellAPI 自定义系统的关于对话框 about
    if 条件语句
    操作INI文件cpp
    ShellAPI 取得可执行文件的图标
    For 循环 语句
    选择结构语句IF
    SendMessage 关闭计算器
  • 原文地址:https://www.cnblogs.com/zhangyu0217----/p/6836536.html
Copyright © 2011-2022 走看看