init: 导入项目
This commit is contained in:
133
commonapi/src/main/java/com/ag/util/UUIDUtil.java
Normal file
133
commonapi/src/main/java/com/ag/util/UUIDUtil.java
Normal file
@@ -0,0 +1,133 @@
|
||||
package com.ag.util;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Created by Administrator on 2017/3/29 0029.
|
||||
*/
|
||||
public class UUIDUtil {
|
||||
public UUIDUtil() {
|
||||
}
|
||||
|
||||
/**
|
||||
* ????UUID
|
||||
*
|
||||
* @return String UUID
|
||||
*/
|
||||
public static String getUUID() {
|
||||
return UUID.randomUUID().toString().replaceAll("-","");
|
||||
}
|
||||
|
||||
/**
|
||||
* ???????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;
|
||||
}
|
||||
|
||||
/**
|
||||
* ????????base64??
|
||||
*/
|
||||
public static char[] encode(byte[] data) {
|
||||
char[] out = new char[((data.length + 2) / 3) * 4];
|
||||
for (int i = 0, index = 0; i < data.length; i += 3, index += 4) {
|
||||
boolean quad = false;
|
||||
boolean trip = false;
|
||||
int val = (0xFF & (int) data[i]);
|
||||
val <<= 8;
|
||||
if ((i + 1) < data.length) {
|
||||
val |= (0xFF & (int) data[i + 1]);
|
||||
trip = true;
|
||||
}
|
||||
val <<= 8;
|
||||
if ((i + 2) < data.length) {
|
||||
val |= (0xFF & (int) data[i + 2]);
|
||||
quad = true;
|
||||
}
|
||||
out[index + 3] = alphabet[(quad ? (val & 0x3F) : 64)];
|
||||
val >>= 6;
|
||||
out[index + 2] = alphabet[(trip ? (val & 0x3F) : 64)];
|
||||
val >>= 6;
|
||||
out[index + 1] = alphabet[val & 0x3F];
|
||||
val >>= 6;
|
||||
out[index + 0] = alphabet[val & 0x3F];
|
||||
}
|
||||
return out;
|
||||
}
|
||||
/**
|
||||
* ?base64????????????
|
||||
*/
|
||||
public static byte[] decode(char[] data) {
|
||||
int len = ((data.length + 3) / 4) * 3;
|
||||
if (data.length > 0 && data[data.length - 1] == '=')
|
||||
--len;
|
||||
if (data.length > 1 && data[data.length - 2] == '=')
|
||||
--len;
|
||||
byte[] out = new byte[len];
|
||||
int shift = 0;
|
||||
int accum = 0;
|
||||
int index = 0;
|
||||
for (int ix = 0; ix < data.length; ix++) {
|
||||
int value = codes[data[ix] & 0xFF];
|
||||
if (value >= 0) {
|
||||
accum <<= 6;
|
||||
shift += 6;
|
||||
accum |= value;
|
||||
if (shift >= 8) {
|
||||
shift -= 8;
|
||||
out[index++] = (byte) ((accum >> shift) & 0xff);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index != out.length)
|
||||
throw new Error("miscalculated data length!");
|
||||
return out;
|
||||
}
|
||||
static private char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
|
||||
.toCharArray();
|
||||
static private byte[] codes = new byte[256];
|
||||
static {
|
||||
for (int i = 0; i < 256; i++)
|
||||
codes[i] = -1;
|
||||
for (int i = 'A'; i <= 'Z'; i++)
|
||||
codes[i] = (byte) (i - 'A');
|
||||
for (int i = 'a'; i <= 'z'; i++)
|
||||
codes[i] = (byte) (26 + i - 'a');
|
||||
for (int i = '0'; i <= '9'; i++)
|
||||
codes[i] = (byte) (52 + i - '0');
|
||||
codes['+'] = 62;
|
||||
codes['/'] = 63;
|
||||
}
|
||||
public static void main(String[] args) throws Exception {
|
||||
// ???base64
|
||||
/*String strSrc = "ios";
|
||||
String strOut = new String(UUIDUtil.encode(strSrc.getBytes("UTF-8")));
|
||||
System.out.println(strOut);
|
||||
String strOut2 = new String(UUIDUtil.decode(strOut.toCharArray()),
|
||||
"UTF-8");
|
||||
System.out.println(strOut2);*/
|
||||
long on = System.nanoTime();
|
||||
long on1 = System.currentTimeMillis();
|
||||
System.out.println(UUIDUtil.getUUID());
|
||||
long end = System.nanoTime();
|
||||
long end1 = System.currentTimeMillis();
|
||||
|
||||
|
||||
System.out.println(end - on);
|
||||
System.out.println(end1 - on1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user