【Java學習-J.160430.0.16】筆記9-UUID生成
阿新 • • 發佈:2019-02-11
UUID生成
public class RandomUUID {
/*
* A-Z a-z 0-9
*/
static String[] chars = new String[62];
public static String[] createArray(){
int j = 0;
for (int i = 0; i < chars.length; i++) {
if(i < 26){
chars[i] = (char)('A' + j) + "";
j++;
if (j>=26){
j=0;
}
}else if(i>=26 && i < 52){
chars[i] = (char)('a' + j) + "";
j++;
if(j>=26)
j=0;
}else{
chars[i] = (char)('0' + j) + "";
j++;
}
}
return chars;
}
/**
*
* @param uuid 是要傳遞進來的UUID
* @param size 幾個驗證碼
* @return
*/
public static String getRandomUUID(String uuid,int size){
//replace : 替換
String uuid2 = uuid.replace("-", "");
String validate = "";
for (int i = 0; i < size; i++) {
//substring : 擷取
String str = uuid2.substring(i*4, i*4+4);
//根據16進位制轉換成一個整數
int x = Integer.parseInt(str, 16);
//從
validate += chars[x % chars.length];
}
return validate;
}
public static void main(String[] args) {
chars = createArray();
String uuid = UUID.randomUUID().toString();
//System.out.println(uuid);
String s = "2a28d704917c40b08e6cfc6e37beaf9f";
//System.out.println(s.substring(4, 8));//2a28 ,d704
int x = Integer.parseInt("1a",16);
//System.out.println(s.length() / 4);
String validate = getRandomUUID(uuid, 5);
System.out.println(validate);
}