• java 随机数 优惠码 生成 随机字串


    package test;
    import java.util.HashSet;
    import java.util.Random;  
    import java.util.Set;
    public class RandomUtil {
            public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";  
            public static final String LETTERCHAR = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";  
            public static final String NUMBERCHAR = "0123456789";  
    
              
            /** 
             * 返回一个定长的随机字符串(数字) 
             *  
             * @param length 
             *            随机字符串长度 
             * @return 随机字符串 
             */  
            public static String generateOnlyNumber(int length) {  
                StringBuffer sb = new StringBuffer();  
                Random random = new Random();  
                for (int i = 0; i < length; i++) {  
                    sb.append(NUMBERCHAR.charAt(random.nextInt(NUMBERCHAR.length())));  
                }  
                return sb.toString();  
            }  
    
            
            /** 
             * 返回一个定长的随机字符串(只包含大小写字母、数字) 
             *  
             * @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(LETTERCHAR.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();  
            }  
          
            /** 
             * 每次生成的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("生成一个定长的纯0字符串:" + generateZeroString(10));  
                System.out.println("根据数字生成一个定长的字符串,长度不够前面补0:"  
                        + toFixdLengthString(123, 10));  
                int[] in = { 1, 2, 3, 4, 5, 6, 7 };  
                System.out.println("每次生成的len位数都不相同:" + getNotSimple(in, 3));  
                
                int i=0;
                Set codes = new HashSet();
                while(codes.size()<10){
                    i++;
                    codes.add(generateOnlyNumber(10));
                
                }
                System.out.println("返回一个定长的随机字符串(数字):" +codes.toString() );
                System.out.println("返回一个定长的随机字符串(数字) 产生次数:" +i );
            }  
    }
  • 相关阅读:
    附上我的Github源码
    Java Automic包下的AtomicInteger
    思维题:四个小伙伴过桥问题
    TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗
    输入www.baidu.com会发生什么
    外网IP和内网IP区别
    Queue接口分析:add和offer区别,remove和poll方法到底啥区别
    手工创建一个线程池
    volatile关键字
    牛客网 买手串
  • 原文地址:https://www.cnblogs.com/bigben0123/p/6100715.html
Copyright © 2020-2023  润新知