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 );
        }
}
时间: 2024-10-27 08:29:00

java 随机数 优惠码 生成 随机字串的相关文章

java二维码生成

二维码,是一种采用黑白相间的平面几何图形经过相应的编码算法来记载文字.图画.网址等信息的条码图画.如下图 二维码的特色: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比一般条码信息容量约高几十倍. 2.  编码规模广 该条码能够把图画.声响.文字.签字.指纹等能够数字化的信息进行编码,用条码表明出来:能够表明多种语言文字:可表明图画数据. 3.  容错能力强,具有纠错功用 这使得二维条码因穿孔.污损等导致部分损坏时,照样能够正确

Java二维码生成与解码

基于google zxing 的Java二维码生成与解码 一.添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包) <!-- google二维码工具 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.1.0</version> </dependen

java 二维码生成

直接上代码: 二维码生成核心类: package com.bbkj.wechat.tool; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.util.EnumMap; import javax.imageio.ImageIO; import com.google.zxing.BarcodeF

java 二维码生成(可带图片)springboot版

本文(2019年6月29日 飞快的蜗牛博客) 有时候,男人和女人是两个完全不同的世界,男人的玩笑和女人的玩笑也完全是两码事,爱的人完全不了解你,你也不要指望一个女人了解你,所以男的不是要求别人怎么样,是要求自己怎么样,男人更应该对自己好点,照顾好自己是最基本的, 不然你怎么照顾别人,男人是竞争的产物不是吗? 言归正传: 首先加入依赖我的目前依赖是: <!-- 二维码生成 --><dependency> <groupId>com.google.zxing</grou

java二维码生成与解析代码实现

二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍. 2.  编码范围广 该条码可以把图片.声音.文字.签字.指纹等可以数字化的信息进行编码,用条码表示出来:可以表示多种语言文字:可表示图像数据. 3.  容错能力强,具有纠错功能 这使得二维条码因穿孔.污损等引起局部损坏时,照样可以正确

[转]java二维码生成与解析代码实现

转载地址:点击打开链接 二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍. 2.  编码范围广 该条码可以把图片.声音.文字.签字.指纹等可以数字化的信息进行编码,用条码表示出来:可以表示多种语言文字:可表示图像数据. 3.  容错能力强,具有纠错功能 这使得二维条码因穿孔.污损等引起

java二维码生成工具

import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Hashtable; import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.BinaryBitmap; import

Java 二维码生成工具类

public class QRcodeUtils { /** * 容错率等级 L */ public static final char CORRECT_L = 'L'; /** * 容错率等级 M */ public static final char CORRECT_M = 'M'; /** * 容错率等级 Q */ public static final char CORRECT_Q = 'Q'; /** * 容错率等级 H */ public static final char CORR

Java二维码生成与解码工具Zxing使用

1 package com.csii.zxing.test; 2 3 import java.awt.image.BufferedImage; 4 import java.io.File; 5 import java.io.IOException; 6 import java.util.HashMap; 7 import java.util.Hashtable; 8 import java.util.Map; 9 10 import javax.imageio.ImageIO; 11 12 im