package com.test;

import java.util.Random;

public class RandomUtils {
	public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	public static final String LETTERCHAR = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	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(); 
    } 
    
    /**
     * 每次生成的len位数都不相同
     * @param param   
     * @return 定长的数字
     */
    public static int getNotSimple(int[] param,int len)
    {
         Random rand = new Random();
         for (int i = param.length; i > 1; i--)
         {
             int index = rand.nextInt(i);
             int tmp = param[index];
             param[index] = param[i - 1];
             param[i - 1] = tmp;
         }
         int result = 0;
         for(int i = 0; i < len; i++)
         {
             result = result * 10 + param[i];
         }
         return result;
    }

    public static void main(String[] args) { 
            System.out.println(generateString(10)); 
            System.out.println(generateMixString(10)); 
            System.out.println(generateLowerString(10)); 
            System.out.println(generateUpperString(10)); 
            System.out.println(generateZeroString(10)); 
            System.out.println(toFixdLengthString(123, 10)); 
            System.out.println(toFixdLengthString(123L, 10)); 
            int[] in = {1,2,3,4,5,6,7};
            System.out.println(getNotSimple(in,3));
    } 
}
最近下载更多
致敬巴菲特  LV1 2023年3月28日
crosa_Don  LV18 2022年7月20日
fuyunyun  LV1 2020年12月14日
helloUI  LV9 2015年2月28日
AXIN  LV36 2014年2月22日
最近浏览更多
致敬巴菲特  LV1 2023年3月28日
crosa_Don  LV18 2022年7月6日
hdf999  LV12 2021年4月3日
幻羽揚  LV4 2019年11月18日
爱情的本质  LV15 2019年1月22日
fly666  LV11 2018年9月27日
zhengminxuan 2018年9月14日
暂无贡献等级
唯爱杰  LV6 2018年7月10日
tangjun  LV17 2018年6月19日
shao9803  LV12 2018年5月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友