RandomUtils 生成指定长度随机数

package com.wx.userserver.utils;
 
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
 
/**
 * 随机数工具类
 */
public class RandomUtils {
 
	private static final Random random = new Random();
 
	private static final DecimalFormat fourdf = new DecimalFormat("0000");
 
	private static final DecimalFormat sixdf = new DecimalFormat("000000");

	private static final String ALL_CHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	private static final String LETTER_CHAR = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	private static final String NUMBER_CHAR = "0123456789";

	/**
	 * 获取定长的随机数,包含大小写、数字
	 * @param length 随机数长度
	 * @return
	 */
	public static String getGenerateString(int length) {
		StringBuffer sb = new StringBuffer();
		Random random = new Random();
		for (int i = 0; i < length; i++) {
			sb.append(ALL_CHAR.charAt(random.nextInt(ALL_CHAR.length())));
		}
		return sb.toString();
	}

	/**
	 * 获取定长的随机数,包含大小写字母
	 * @param length 随机数长度
	 * @return
	 */
	public static String getGenerateMixString(int length) {
		StringBuffer sb = new StringBuffer();
		Random random = new Random();
		for (int i = 0; i < length; i++) {
			sb.append(LETTER_CHAR.charAt(random.nextInt(LETTER_CHAR.length())));
		}
		return sb.toString();
	}

	/**
	 * 获取定长的随机数,只包含小写字母
	 * @param length 随机数长度
	 * @return
	 */
	public static String getGenerateLowerString(int length) {
		return getGenerateMixString(length).toLowerCase();
	}

	/**
	 * 获取定长的随机数,只包含大写字母
	 * @param length 随机数长度
	 * @return
	 */
	public static String getGenerateUpperString(int length) {
		return getGenerateMixString(length).toUpperCase();
	}

	/**
	 * 获取定长的随机数,只包含数字
	 * @param length 随机数长度
	 * @return
	 */
	public static String getGnerateNumberString(int length){
		StringBuffer sb = new StringBuffer();
		Random random = new Random();
		for (int i = 0; i < length; i++) {
			sb.append(NUMBER_CHAR.charAt(random.nextInt(NUMBER_CHAR.length())));
		}
		return sb.toString();
	}

	/**
	 * 获取四位随机数
	 * @return
	 */
	public static String getFourBitRandom() {
		return fourdf.format(random.nextInt(10000));
	}

	/**
	 * 获取六位随机数
	 * @return
	 */
	public static String getSixBitRandom() {
		return sixdf.format(random.nextInt(1000000));
	}
 
	/**
	 * 给定数组,抽取n个数据
	 * @param list
	 * @param n
	 * @return
	 */
	public static ArrayList getRandomFromList(List list, int n) {
 
		Random random = new Random();
 
		HashMap<Object, Object> hashMap = new HashMap<Object, Object>();
 
		// 生成随机数字并存入HashMap
		for (int i = 0; i < list.size(); i++) {
 
			int number = random.nextInt(100) + 1;
 
			hashMap.put(number, i);
		}
 
		// 从HashMap导入数组
		Object[] robjs = hashMap.values().toArray();
 
		ArrayList r = new ArrayList();
 
		// 遍历数组并打印数据
		for (int i = 0; i < n; i++) {
			r.add(list.get((int) robjs[i]));
			System.out.print(list.get((int) robjs[i]) + "\t");
		}
		System.out.print("\n");
		return r;
	}

	public static void main(String[] args) {
		System.out.println("***********Test******************");
		System.out.println("大小写数字:"+generateString(10));
		System.out.println("大小写字母:"+generateMixString(10));
		System.out.println("小写字母:"+generateLowerString(10));
		System.out.println("大写字母:"+generateUpperString(10));
		System.out.println("纯数字:"+generateNumberString(10));
		System.out.println("***********Test******************");
	}
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值