一、隨機字符串
/**
*
* @param count 隨機字符串長度
* @return
*/
public static String getSecureRandomStr(int count){
try {
String[] texts = {"1","2","3","4","5","6","7","8","9","0",
"q","w","e","r","t","y","u","i","o","p",
"a","s","d","f","g","h","j","k","l",
"z","x","c","v","b","n","m",
"Q","W","E","R","T","Y","U","I","O","P",
"A","S","D","F","G","H","J","K","L",
"Z","X","C","V","B","N","M"};
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
StringBuffer stringBuffer = new StringBuffer("");
for(int i= 0;i<count;i++){
stringBuffer.append(texts[random.nextInt(texts.length-1)]);
}
return stringBuffer.toString();
}catch (Exception e){
/* 假如異常,則調用偽隨機數生成字符串 */
return getRandomStr(count);
}
}
二、提取身份證號碼
/**
* 過濾身份證號碼
* 通過對比 ASCII碼 過濾指定字符串
* */
public static String getIdcard(String str){
String str2="";
if(str != null && !"".equals(str)){
for(int i=0;i<str.length();i++){
if((str.charAt(i)>=48 && str.charAt(i)<=57) || str.charAt(i)== 88 || str.charAt(i)== 120 ){
str2+=str.charAt(i);
}
}
}
return str2.toUpperCase();
}
/**
* 正則提取身份證號碼
* @return 提取到的身份證號碼
*/
public static String getIdCardPattern(String text){
Pattern IdCard = Pattern.compile("\\d{17}[\\d|x|X]|\\d{15}");
Matcher IdCardNumber = IdCard.matcher(text);//截取身份證號
if(IdCardNumber.find()){
String group = IdCardNumber.group();//得到身份證號
return group;
}else{
return null;
}
}
三、提取數字
/**
* 提取數字
* 通過對比 ASCII碼 提取數字
* */
public static String getInt(String str){
String str2="";
if(str != null && !"".equals(str)){
for(int i=0;i<str.length();i++){
if((str.charAt(i)>=48 && str.charAt(i)<=57)){
str2+=str.charAt(i);
}
}
}
return str2.toUpperCase();
}
/**
* 正則提取數字
* @param text
* @return
*/
public static String getIntPattern(String text){
Pattern IdCard = Pattern.compile("[^0-9]");
Matcher IdCardNumber = IdCard.matcher(text);//截取身份證號
if(IdCardNumber.find()){
String group = IdCardNumber.replaceAll("").trim();//得到身份證號
return group;
}else{
return null;
}
}
四、根據長度和數字獲取編碼
/**
* 根據數字獲取固定長度的字符,作為編碼時使用
* 示例:getStringLength(0,6) 返回:000015
* */
public static String getStringLength(int length,int number){
NumberFormat n = NumberFormat.getInstance();
/* 這行的主要作用是去除千分位的逗號 */
n.setGroupingUsed(false);
n.setMinimumIntegerDigits(length);
return n.format(number);
}