package com.itmuch.cloud.util;
import java.util.Random;
/**
* 類描述:生成隨機數
*
* @author: mischen
* @date: 日期:2020-04-04 時間:下午11:45:45
* @version 1.0
*/
public class UUIDUitl {
public static final String allCharStr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+";
public static final String allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static final String letterChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static final String numberChar = "0123456789";
public static final String specialChar = "!@#$%^&*()_+";
/**
* 返回一個定長的隨機字符串(只包含大小寫字母、數字)
*
* @param length
* 隨機字符串長度
* @return 隨機字符串
*/
public static String generateInteger(int length) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
for (int i = 0; i < length; i++) {
sb.append(numberChar.charAt(random.nextInt(numberChar.length())));
}
return sb.toString();
}
/**
* 返回一個定長的隨機字符串(只包含大小寫字母、數字)
*
* @param length
* 隨機字符串長度
* @return 隨機字符串
*/
public static String generateString(int length) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
for (int i = 0; i < length; i++) {
sb.append(allChar.charAt(random.nextInt(allChar.length())));
}
return sb.toString();
}
/**
* 返回一個定長的隨機字符串(只包含大小寫字母、數字)
*
* @param length
* 隨機字符串長度
* @return 隨機字符串
*/
public static String generateAllString(int length) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
for (int i = 0; i < length; i++) {
sb.append(allCharStr.charAt(random.nextInt(allCharStr.length())));
}
return sb.toString();
}
/**
* 返回一個定長的隨機純字母字符串(只包含大小寫字母)
*
* @param length
* 隨機字符串長度
* @return 隨機字符串
*/
public static String generateMixString(int length) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
for (int i = 0; i < length; i++) {
sb.append(allChar.charAt(random.nextInt(letterChar.length())));
}
return sb.toString();
}
/**
* 返回一個定長的隨機純大寫字母字符串(只包含大小寫字母)
*
* @param length
* 隨機字符串長度
* @return 隨機字符串
*/
public static String generateLowerString(int length) {
return generateMixString(length).toLowerCase();
}
/**
* 返回一個定長的隨機純小寫字母字符串(只包含大小寫字母)
*
* @param length
* 隨機字符串長度
* @return 隨機字符串
*/
public static String generateUpperString(int length) {
return generateMixString(length).toUpperCase();
}
/**
* 生成一個定長的純0字符串
*
* @param length
* 字符串長度
* @return 純0字符串
*/
public static String generateZeroString(int length) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
sb.append('0');
}
return sb.toString();
}
/**
* 根據數字生成一個定長的字符串,長度不夠前面補0
*
* @param num
* 數字
* @param fixdlenth
* 字符串長度
* @return 定長的字符串
*/
public static String toFixdLengthString(long num, int fixdlenth) {
StringBuffer sb = new StringBuffer();
String strNum = String.valueOf(num);
if (fixdlenth - strNum.length() >= 0) {
sb.append(generateZeroString(fixdlenth - strNum.length()));
} else {
throw new RuntimeException("將數字" + num + "轉化爲長度爲" + fixdlenth + "的字符串發生異常!");
}
sb.append(strNum);
return sb.toString();
}
/**
* 根據數字生成一個定長的字符串,長度不夠前面補0
*
* @param num
* 數字
* @param fixdlenth
* 字符串長度
* @return 定長的字符串
*/
public static String toFixdLengthString(int num, int fixdlenth) {
StringBuffer sb = new StringBuffer();
String strNum = String.valueOf(num);
if (fixdlenth - strNum.length() >= 0) {
sb.append(generateZeroString(fixdlenth - strNum.length()));
} else {
throw new RuntimeException("將數字" + num + "轉化爲長度爲" + fixdlenth + "的字符串發生異常!");
}
sb.append(strNum);
return sb.toString();
}
/**
* 八位數字+字母+特殊字符隨機密碼生成
*
* @return
*/
public static String generatePwdStr() {
StringBuffer sb = new StringBuffer();
Random random = new Random();
for (int i = 0; i < 3; i++) {
sb.append(allChar.charAt(random.nextInt(letterChar.length())));
sb.append(numberChar.charAt(random.nextInt(numberChar.length())));
}
for (int i = 0; i < 2; i++) {
sb.append(specialChar.charAt(random.nextInt(specialChar.length())));
}
return sb.toString();
}
public static void main(String[] args){
System.out.println(generatePwdStr());
}
}