**- 1、用户名最多25个字符长度、不能包含空格、单双引号、问号等特殊符号
- 2、密码6-8位,只能包含字母、数字、特殊符号(_、@、#、$、!)
- 纯数字、纯字母时,密码强度为弱(★★☆☆☆☆)
- 字母+符号、数字+符号、数字+字母,强度为中(★★★★☆☆)
- 同时存在三种字符,强度为强(★★★★★★)**
package userdome;
/**
*字符串工具类,封装了字符串常用的判断方法
* @author TR
*
*/
public class Stringutil {
public static int strength=0;
public static String correctPart="_@#$!";
/**
* 1、用户名最多25个字符长度、不能包含空格、单双引号、问号等特殊符号
* @param userName
* @return
*/
public static boolean iscotteUserName(String userName){
boolean isCorrect=true;
if(userName==null||userName.length()>25)return false;
String unValidString=" \"'?><,";
for (char ch : unValidString.toCharArray()) {
if(userName.contains(Character.toString(ch)))return false;
}
return isCorrect;
}
/**
* 2、密码6-8位,只能包含字母、数字、特殊符号(_、@、#、$、!)
* 纯数字、纯字母时,密码强度为弱(★★☆☆☆☆)
* 字母+符号、数字+符号、数字+字母,强度为中(★★★★☆☆)
* 同时存在三种字符,强度为强(★★★★★★)
* @param passWord
* @return
*/
public static String validatePassWord(String passWord){
StringBuilder power=new StringBuilder();
if(passWord==null||passWord.length()<6||passWord.length()>8)return power.toString();
for (char ch : passWord.toCharArray()){
if(!Character.isLetterOrDigit(ch)){
if(!correctPart.contains(Character.toString(ch)))return power.toString();
}
}
isStrength(passWord);
for (int i = 1; i < 4; i++) {
if(i<=strength){
power.append(String.valueOf("★★"));
}
else{
power.append(String.valueOf("☆☆"));
}
}
return power.toString();
}
/**
* 判断密码强度
* @param passWord
* @return
*/
private static void isStrength(String passWord){
for (char ch : passWord.toCharArray()) {
if(Character.isDigit(ch)){
strength++;
break;
}
}
for (char ch : passWord.toCharArray()) {
if(Character.isLetter(ch)){
strength++;
break;
}
}
for (char ch : passWord.toCharArray()) {
if(correctPart.contains(Character.toString(ch))){
strength++;
break;
}
}
}