文档章节

生成随机码——以及UUID

yabushan
 yabushan
发布于 2016/04/16 14:28
字数 656
阅读 55
收藏 0
package yabushan.common;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * 
 * <code>{@link RandomUtil}</code>
 *
 * TODO : document me
 *
 * @author yabushan
 */
public class RandomUtil {
	
	/**
	 * @Description:  获取一个四位含字母/数字的验证码
	 * @param @return
	 * @return String
	 * @throws
	 */
	public static String getRandomCode(int start ,int end){
		String[] beforeShuffle = new String[] { "0", "1", "2", "3", "4", "5", "6", "7",  
                "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",  
                "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",  
                "W", "X", "Y", "Z" };  
	    List list = Arrays.asList(beforeShuffle);  
	    Collections.shuffle(list);  
	    StringBuilder sb = new StringBuilder();  
	    for (int i = 0; i < list.size(); i++) {  
	        sb.append(list.get(i));  
	    }  
	    String afterShuffle = sb.toString();  
	    String result = afterShuffle.substring(start, end);  
	    return result;
	}
	
	/**
	 * @Description:  获取一个6位数字的验证码
	 * @param @return
	 * @return String
	 * @throws
	 */
	public static String getSixnumRandomCode(int start,int end){
		String[] beforeShuffle = new String[] { "0", "1", "2", "3", "4", "5", "6", "7",  
                "8", "9" };  
	    List list = Arrays.asList(beforeShuffle);  
	    Collections.shuffle(list);  
	    StringBuilder sb = new StringBuilder();  
	    for (int i = 0; i < list.size(); i++) {  
	        sb.append(list.get(i));  
	    }  
	    String afterShuffle = sb.toString();  
	    String result = afterShuffle.substring(start, end);  
	    return result;
	}
	
	/**
	 * @Description:  获取一个3位数字的验证码
	 * @param @return
	 * @return String
	 * @throws
	 */
	public static String getThreenumRandomCode(int start ,int end){
		String[] beforeShuffle = new String[] { "0", "1", "2", "3", "4", "5", "6", "7",  
                "8", "9" };  
	    List list = Arrays.asList(beforeShuffle);  
	    Collections.shuffle(list);  
	    StringBuilder sb = new StringBuilder();  
	    for (int i = 0; i < list.size(); i++) {  
	        sb.append(list.get(i));  
	    }  
	    String afterShuffle = sb.toString();  
	    String result = afterShuffle.substring(start, end);  
	    return result;
	}
	
	/**
	 * @Description: 获取key值 
	 * @param @param pileId
	 * @param @param userId
	 * @param @return
	 * @return String
	 * @throws
	 */
	public static String getKey(String pileId,String userId){
		StringBuffer key = new StringBuffer();
		key.append(pileId);
		key.append(userId);
		key.append(UUIDGenerator.generateShortUuid());
		return key.toString();
	
	}
	
	public static void main(String[] args) {
		System.out.println(getRandomCode(0,10));
		System.out.println(getSixnumRandomCode(0,10));
		System.out.println(getThreenumRandomCode(0,10));
		System.out.println(getKey("sxf", "123"));
	}
	
	
}
package yabushan.common;

import java.util.HashSet;
import java.util.Set;
import java.util.UUID;

public class UUIDGenerator { 
	public static String[] chars = new String[] { "a", "b", "c", "d", "e", "f",  
        "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",  
        "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",  
        "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I",  
        "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",  
        "W", "X", "Y", "Z" };  
	
	/**
	 * 生成八位的uuid
	 * @return
	 */
	public static String generateShortUuid() {  
	    StringBuffer shortBuffer = new StringBuffer();  
	    String uuid = UUID.randomUUID().toString().replace("-", "");  
	    for (int i = 0; i < 8; i++) {  
	        String str = uuid.substring(i * 4, i * 4 + 4);  
	        int x = Integer.parseInt(str, 16);  
	        shortBuffer.append(chars[x % 0x3E]);  
	    }  
	    return shortBuffer.toString();  
	  
	}  
	
    public UUIDGenerator() { 
    } 
    public static String getUUID(){ 
        String s = UUID.randomUUID().toString(); 
     
        return s; 
    } 
    /** 
     * 获得一个UUID 
     * @return String UUID 
     */ 
   /* public static String getUUID(){ 
        String s = UUID.randomUUID().toString(); 
        //去掉“-”符号 
        return s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24); 
    } */
    /** 
     * 获得指定数目的UUID 
     * @param number int 需要获得的UUID数量 
     * @return String[] UUID数组 
     */ 
    public static String[] getUUID(int number){ 
        if(number < 1){ 
            return null; 
        } 
        String[] ss = new String[number]; 
        for(int i=0;i<number;i++){ 
            ss[i] = getUUID(); 
        } 
        return ss; 
    }
    public static String getUUIDReplaceStr(){
    	String s = UUID.randomUUID().toString(); 
    	return s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24); 
    }
    
    /**
     * 
    * @Description:  生成id
    * @param @return
    * @return String
    * @throws
     */
    public static String getID(){
    	StringBuffer buffer = new StringBuffer();
    	buffer.append(SystemConstants.SYSTEM_ID);
    	buffer.append(String.valueOf(System.currentTimeMillis()));
    	buffer.append(RandomUtil.getThreenumRandomCode(3,7));
    	return buffer.toString();
    }
    
    public static void main(String[] args){
//        String[] ss = getUUID(10); 
//        for(int i=0;i<ss.length;i++){ 
//            System.out.println(ss[i]); 
//        } 
    	String uuid8 = "";
    	Set<String> set = new HashSet<String>();
    	
    	for (int i = 0; i < 1000000; i++) {
//    		uuid8 = generateShortUuid();
    		uuid8 = getID();
    		boolean isin = set.contains(uuid8); 
    		if (isin) {
				System.out.println("已经存在...."+uuid8);
			}else {
				set.add(uuid8);
			}
    		
		}
    	
    	System.out.println("set中总数为:"+set.size());
    	System.out.println("全部执行完毕...");
    } 
}


© 著作权归作者所有

共有 人打赏支持
上一篇: 日期处理工具类
下一篇: Cookie工具类
yabushan
粉丝 1
博文 38
码字总数 34355
作品 0
私信 提问
shell 生成随机数和随机字符串

1、生成随机数: [root@73 ~]# echo $RANDOM 32641 [root@73 ~]# echo $RANDOM 9753 [root@73 ~]# echo $RANDOM 710 注:得到的这个随机数是介于 0~32767 之间的一个整数。 2、生成随机字符串...

大数据之路
2012/09/04
0
0
Python 趣味练习- 保存激活码到mysql和redis

今天接着做练习,题目出自 https://github.com/Yixiaohan/show-me-the-code 第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Py...

beanxyz
2017/10/12
0
0
hilo高低位算法的优点和用途(非Hibernate主键策略)

开门见山地说,hilo高低位算法的用途,或者说目前为止我所见过的用途,就是——编号生成! 通常订单编号、产品编号、物流编号、工人编号、批次编号等等各种各样的编号,都是由数字构成,有得...

Awisper
2015/12/17
1K
0
shell实例浅谈之三产生随机数七种方法

一、问题 Shell下有时需要使用随机数,在此总结产生随机数的方法。计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数)。伪随机数在大量重现时也并不一定保持唯一,但...

898009427
2017/12/29
0
0
产生唯一随机码的方法分析

自己写代码产生随机的数字和字母组合,每产生1个去数据库查询该随机码是否已存在,如果已存在,则重新产生,直到不重复为止。 优点:没发现有啥优点。 缺点:产生速度慢,还要查询数据库,当...

好铁
2016/07/04
96
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux如何查看进程、杀死进程、启动进程等常用命令

关键字: linux 查进程、杀进程、起进程 1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序。 ps -A 显示所有程序。 ps c 列出程序时,显示每个程...

临江仙卜算子
8分钟前
1
0
ASP.NET Core MVC 静态文件配置

在启动文件中添加以下配置 public class Startup{ public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddDirectoryBrowser(); ......

whltian
18分钟前
1
0
linux之自定义命令

本人使用的是ubuntu系统,不喜欢建各种桌面快捷链接,但是每次启动个软件,去查找又麻烦,所以自定义了命令,来快捷的启动应用: 1、修改/etc/bash.bashrc,在文件末尾,加上如下List-1中的内...

克虏伯
26分钟前
4
0
linux基础

系统安全 sudo su chmod setfacl 进程管理 w top ps kill pkill pstree killall 用户管理 id usermod useradd groupad userdel 文件系统 mount umount fsck df du 网络应用 curl telnet mail......

关元
27分钟前
4
0
Caffe-源码分析(一)

CHECK_X函数,用于比较两个blob之间的值 CHECK_EQ(x,y)<<"x!=y",EQ即equation,意为“等于”,当x!=y时,函数打印出x!=y。 CHECK_NE(x,y)<<"x=y",NE即not equation,意为“不等于”,,...

Pulsar-V
28分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部