⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idgenerator.java

📁 企业进销存源码
💻 JAVA
字号:
package com.web.util;

import java.util.*;
import java.sql.*;
//import oracle.jdbc.driver.OracleDriver;




/**
*唯一键生成器
*
*@version 1.0
*/
public class IDGenerator 
{
	String[] formatStr;
	String linkChar;
	
	/**
	*构造器,UA表示大写字母,LA表示小写字母,A表是任意字母.N表示数字
	*@param formatStr[] 格式字符串数组,例如"{A3,N3}"的含义是前边是任意字母长为三位,后边是任意数字长为三位中间用"-"连接.
	*/	
	public IDGenerator(String formatStr[],String linkChar)throws Exception
	{
		//检查formatStr的合法性
		
		for(int i=0;i<formatStr.length;i++)
		{
			if(!(formatStr[i].indexOf("UA")!=-1 || formatStr[i].indexOf("LA")!=-1 || formatStr[i].indexOf("N")!=-1 || formatStr[i].indexOf("A")!=-1 || formatStr[i].indexOf("AN")!=-1))
				throw new Exception("formatStr参数有错误,请参照相关文档.");			
		}
		
		this.formatStr=formatStr;
		this.linkChar=linkChar;
	}
	
	/**
	*生成ID号
	*@return 符合要求的ID号
	*/
	public String getID()
	{
		return generateID();
	}
	
	/**
	*生成ID号长度
	*@return ID号长度
	*/
	public int getIDLength()
	{
		int len=0;
		String str="";
		
		for(int i=0;i<formatStr.length;i++)
		{
			str=formatStr[i];
			
			if(str.indexOf("UA")!=-1)
			{	
	
				//大写字母
				len=len + Integer.valueOf(str.substring(2,str.length())).intValue();		
								
			}else if(str.indexOf("LA")!=-1){
				//小写字母

				len=Integer.valueOf(str.substring(2,str.length())).intValue();
				
			}else if(str.indexOf("AN")!=-1){
				//字母数字混合			
				
				len=len + Integer.valueOf(str.substring(2,str.length())).intValue();
				
											
			}else if(str.indexOf("N")!=-1){
				//数字
				len=len + Integer.valueOf(str.substring(1,str.length())).intValue();
				
		
			}else if(str.indexOf("A")!=-1){
				//大小写混合
				
				len=len + Integer.valueOf(str.substring(1,str.length())).intValue();
				
				
			}//if
			
		}//for
		
		len=linkChar.length() * (formatStr.length-1) + len;
		
		return len;
	}
	
	
	
	//产生ID号
	protected String generateID()
	{
		String str=null;
		StringBuffer result=new StringBuffer("");	
		
	
		
		for(int i=0;i<formatStr.length;i++)
		{
			str=formatStr[i];
				
			if(str.indexOf("UA")!=-1)
			{	
	
				//大写字母
				
				int len=Integer.valueOf(str.substring(2,str.length())).intValue();
				
				int num=0;
				for(int j=0;j<len;j++)
				{
					num=(int)Math.floor((Math.random()*26)) + 'A';
					result.append((char)num);										
				}

								
			}else if(str.indexOf("LA")!=-1){
				//小写字母

				int len=Integer.valueOf(str.substring(2,str.length())).intValue();
				
				int num=0;
				for(int j=0;j<len;j++)
				{
					num=(int)Math.floor((Math.random()*26)) + 'a';
					result.append((char)num);										
				}		
				
			}else if(str.indexOf("AN")!=-1){
				//字母数字混合
				
				
				int len=Integer.valueOf(str.substring(2,str.length())).intValue();
				
				int num=0;
				int select=0;
				for(int j=0;j<len;j++)
				{

					select=(int)Math.floor((Math.random()*2));
					
					if(select==0)
						num=(int)Math.floor((Math.random()*26)) + 'a';
					else if(select==1)
						num=(int)Math.floor((Math.random()*26)) + 'A';
					else
						num=(int)(Math.random()*9) + '0';
						
					result.append((char)num);										
				}//for			
				
				

											
			}else if(str.indexOf("N")!=-1){
				//数字
				int len=Integer.valueOf(str.substring(1,str.length())).intValue();
				
				int num=0;
				for(int j=0;j<len;j++)
				{

					num=(int)(Math.random()*9) + '0';
					result.append((char)num);						
				}
				
		
			}else if(str.indexOf("A")!=-1){
				//大小写混合
				
				int len=Integer.valueOf(str.substring(1,str.length())).intValue();
				
				int num=0;
				int select=0;
				for(int j=0;j<len;j++)
				{

					select=(int)Math.floor((Math.random()*2));
				
					if(select==0)
						num=(int)Math.floor((Math.random()*26)) + 'a';						
					else
						num=(int)Math.floor((Math.random()*26)) + 'A';

					result.append((char)num);										
				}		
				
				
			}//if
			
			result.append(linkChar);			
			
		}//for
		
		String tmpString=result.toString().substring(0,result.toString().length()-linkChar.length());
		
		return tmpString;				
	}


	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -