随机数工具类

package com.cmcc.hybj.payment.framework.code;

import java.util.Random;

/**
 * 随机数工具类
 *
 * @author
 *
 */
public class MathRandom {

    /**
     * 随机产生指定范围内的整数
     *
     * @param max
     * @param min
     * @return
     */
    public static int randomInt(int min, int max) {
        return (int) Math.round(Math.random() * (max - min) + min);
    }

    /**
     * 生成指定位数的随机序列
     *
     * @return
     */
    public static String getRodomSN(int numLong) {
        StringBuffer buffer = new StringBuffer();
        for (int i = 0; i < numLong; i++) {
            int num = randomInt(0, 9);
            buffer.append(num);
        }
        return buffer.toString();
    }

    /**
     * 生成随机密码 包括英文(包含大小和小写) 和 数字
     * @param length 指定生成位数
     * @return
     */
    public static String getStringRandom(int length) {
        StringBuffer buffer = new StringBuffer();
        Random random = new Random();

        //参数length,表示生成几位随机数
        for (int i = 0; i < length; i++) {

            String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
            //输出字母还是数字
            if ("char".equalsIgnoreCase(charOrNum)) {
                //输出是大写字母还是小写字母
                int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
                char letter= (char) (random.nextInt(26) + temp);
                buffer.append(letter);
            } else if ("num".equalsIgnoreCase(charOrNum)) {
                String num = String.valueOf(random.nextInt(10));
                buffer.append(num);
            }
        }
        return buffer.toString();
    }

}

原文地址:https://www.cnblogs.com/gyadmin/p/8308447.html