java随机数字实例及自定义随机数解析

TheDisguiser 2020-08-15 15:36:00 java常见问答 5709

随机数的掌握是java基础的标识之一,本篇文章将带大家通过一些实例来深入了解java随机数机制。

例1:根据当前时间随机生成数字

/**
 * @Title: getDateAddFiveRandomCode
 * @Description: 根据当前时间获取随机数:当前时间+5位随机数
 * @return String    返回类型 
 * @date 2019年5月12日 上午10:32:52
 * @throws 
 */
public static String getDateAddFiveRandomCode()
{
    int randomNum = (int)(Math.random() * 90000) + 10000;
    String date = new SimpleDateFormat("yyyyMMddHHmmss")
        .format(Calendar.getInstance()
            .getTime());
    return date + randomNum;
}
/**
 * @Title: getDateAddThreeRandomCode
 * @Description: 根据当前时间获取随机数:当前时间+3位随机数
 * @return String    返回类型 
 * @date 2019年5月12日 上午10:33:14
 * @throws 
 */
public static String getDateAddThreeRandomCode()
{
    int randomNum = (int)(Math.random() * 900) + 100;
    String date = new SimpleDateFormat("yyyyMMddHHmmss")
        .format(Calendar.getInstance()
            .getTime());
    return date + randomNum;
}

例2:自定义随机数

import java.util.Random;
/**
 * 
 * @author mengzw
 * @since 3.0 2018-7-11
 */
public class RandomTest
{
    /**
     * 生成随机字符串
     * 
     * @param length
     *            要生成字符串的长度
     * @param stringType
     *            字符源的类型。0:字母+数字(已把数字中的易混淆字符去除), 1:纯字母, 2:纯数字。默认为字母+数字
     * @param caseType
     *            大小写的类型。0:大小写混合, 1:纯大字, 2:纯小写。默认为纯大写
     * @param specialString
     *            特殊字符 如果需要生成的字符串中包含特殊字符,可把需要添加的特殊字符传进来。该参数为null或""都没关系
     * @return
     */
    public static String getRandomString(int length, int stringType, int caseType, String specialString)
    {
        String type0 = "abcdefghijkmnopqrstuvwxyz23456789";
        String type1 = "abcdefghijkmnopqrstuvwxyz";
        String type2 = "0123456789";
        String characterStore = "";
        switch (stringType)
        {
        case 0:
            characterStore = type0;
            break;
        case 1:
            characterStore = type1;
            break;
        case 2:
            characterStore = type2;
            break;
        default:
            characterStore = type0;
            break;
        }
        characterStore += specialString;
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++)
        {
            int number = random.nextInt(characterStore.length());
            char c = characterStore.charAt(number);
            switch (caseType)
            {
            case 0:
                c = random.nextBoolean() ? Character.toUpperCase(c) : Character.toLowerCase(c);
                break;
            case 1:
                c = Character.toUpperCase(c);
                break;
            case 2:
                c = Character.toLowerCase(c);
                break;
            default:
                c = Character.toUpperCase(c);
                break;
            }
            sb.append(c);
        }
        return sb.toString();
    }
    public static void main(String[] args)
    {
        System.out.println(getRandomString(5, 0, 0, ""));
    }
}

以上就是本篇文章的所有内容,能够熟练运用随机数就代表你的java基础学习已经有一点起色了,更多java常见问题敬请关注奇Q工具网了解详情。

推荐阅读:

java随机数产生的范围该怎么定义?

java随机数代码的三种生成方式怎么编写?

java随机数不重复有什么方法可以解决?