close

在此範例中,主要用於「判斷字串中,是否包含大小寫英文字母、數字、特殊符號,並且至少各有一個英文字母及數字在其中,而總長度最少為8()以上」,而如有其他需求的話,也能依需求增刪減程式碼。

 

1. 主程式範例

/**
 * 判斷字串中,是否包含大小寫英文字母、數字、特殊符號,並且至少各有一個英文字母及數字在其中,而總長度最少為8碼(含)以上
 * @author Elsa
 */
public class PasswordDecideDemo {
    public static void main(String... args) {
        System.out.println("1: " + isMeetPwdRule("a"));
        System.out.println("2: " + isMeetPwdRule("2"));
        System.out.println("3: " + isMeetPwdRule("a3b"));
        System.out.println("4: " + isMeetPwdRule("abcdefg"));
        System.out.println("5: " + isMeetPwdRule("951348206899"));
        System.out.println("6: " + isMeetPwdRule("a@ab5byuf"));
        System.out.println("7: " + isMeetPwdRule("bdg69wtyu"));
    }

 

2. 判斷字串之方法範例

    public static boolean isMeetPwdRule(String str) {
        boolean isMeetPwdRule = false;
        
        // 1.判斷字串總長度是否大於等於8碼
        if(str.length() > 7) {
            boolean isDigit = false;
            boolean isLetter = false;
            
            // 2.判斷字串中是否符合至少各有一個英文字母及數字在其中
            for(int i = 0 ; i < str.length(); i++) {
                // 利用char包裝類 - Character 中的判斷數字的方法(isDigit),來判定該字串中是否包含數字
                if(Character.isDigit(str.charAt(i))) {
                    isDigit = true;  
                }
                // 利用char包裝類 - Character 中的判斷英文字母的方法(isLetter),來判定該字串中是否包含英文字母
                if(Character.isLetter(str.charAt(i))) {
                    isLetter = true;
                }
                // 如符合至少各有一個英文字母及數字在其中者,則可跳出該迴圈
                if(isDigit && isLetter)
                    break;
            }
            
            // 3.判斷字串中是否包含大小寫英文字母 和 數字 (或 特殊符號)
            String regex = "^[a-zA-Z0-9\\p{Punct}]+$";      // ^[a-zA-Z0-9]+$  此正規表達式不包含特殊符號,即有特殊符號則為false
            isMeetPwdRule = isDigit && isLetter && str.matches(regex);
        }
        
        return isMeetPwdRule;
    }

 

3. 執行結果

執行結果.png

 

參考網址:

http://blog.csdn.net/zgcy123456/article/details/9428933

http://blog.sina.com.cn/s/blog_a3c7fe550101agko.html

 

 

 

 

arrow
arrow
    全站熱搜

    Elsa 發表在 痞客邦 留言(0) 人氣()