首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

生产序列号独一键值UUID

2012-06-26 
生产序列号唯一键值UUIDpackage com.feinar.cbs.commonimport java.util.Randomimport java.util.UUIDp

生产序列号唯一键值UUID

package com.feinar.cbs.common;import java.util.Random;import java.util.UUID;public class GUID {private static int index = 0;private static final GUID instance = new GUID();public static GUID getInstance() {return instance;}private final static int intMax = 24;private final static char[] ch = { 'A', 'B', 'C', 'E', 'F', 'K', 'M', 'P', 'Q','R', 'T', 'U', 'W', 'Z', '1', '2', '3', '4', '5', '6', '7', '8','9', '0' };private int getNum(char schar) {switch (schar) {case 'A':return 1;case 'B':return 2;case 'C':return 3;case 'D':return 4;case 'E':return 5;case 'F':return 6;case 'K':return 7;case 'M':return 8;case 'P':return 9;case 'Q':return 0;case 'R':return 10;case 'T':return 11;case 'U':return 12;case 'W':return 13;case 'Z':return 14;case '1':return 15;case '2':return 16;case '3':return 17;case '4':return 18;case '5':return 19;case '6':return 20;case '7':return 21;case '8':return 22;case '9':return 23;case '0':return 24;default:return 1;}}// 得到前N-1位随机数private String getRanstr(int intLength) {Random rd = new Random();rd.setSeed(System.currentTimeMillis()+index);if(index>100){index=0;}else{index++;}StringBuffer sb = new StringBuffer();for (int i = 0; i < intLength; i++) {sb.append(ch[rd.nextInt(intMax)]);}return sb.toString();}// 得到最后一位数private String getLast(String strs) {int sum = 0;for (int i = 0; i < strs.length(); i++) {int nums = getNum(strs.charAt(i));sum += nums * i;}int k = sum % 11;if (k == 0) {return String.valueOf(0);}if (k == 10) {return "X";}return String.valueOf(k);}// 取得16随机数public String get16() {String str = getRanstr(15);str = str.concat(getLast(str));return str;}// 取得12随机数public String get12() {String strg = getRanstr(11);strg = strg.concat(getLast(strg));return strg;}public static void main(String[] args) {System.out.println(getInstance().get16());//UUID uuid = UUID.randomUUID();//System.out.println(uuid);}}

?

热点排行