1.密码位数6位 2.密码不可以是纯数字或是纯字母 0-9 AAAAAA---zzzzz 3.密码必须包含以下特殊字符之一: _ , @ &

package ppt10lang包;

import java.util.Scanner;

import org.junit.Test;
//1.密码位数6位
//2.密码不可以是纯数字或是纯字母  0-9  AAAAAA---zzzzz 
//3.密码必须包含以下特殊字符之一:  _ , @ &
public class TestSecret {
    public static void main(String[] args) {
        String str;
        Scanner input = new Scanner(System.in);
        System.out.println("请输入密码(六位)");
        str = input.nextLine();
        if(testNum(str)&&testDigitLetter(str)&&testSpecial(str)){
            System.out.println("密码合法");
        }else{
            System.out.println("密码不合法");
        }
    }
    
    
    public static boolean testNum(String str){
        if(str.length()>=6){
            return true;
        }else{
            System.out.println("密码必须大于等于6位!");
            return false;
        }
    }
    /**
     * 没有存在纯数字或者纯字母的时候,则返回true;
     * 存在则返回false
     * @param str
     * @return
     */
    @Test
    public static boolean testDigitLetter(String str){
        int digit = 0;
        int letter = 0;
        char[] ch = str.toCharArray();
        for (char i:ch) {
            if(Character.isLetter(i)){
                letter++;
            }
            if(Character.isDigit(i)){
                digit++;
            }
        }
        if(letter == ch.length||digit == ch.length){
            System.out.println("密码不能纯数字或纯字母");
            return false;
        }else{
            return true;
        } 
    }
    public static boolean testSpecial(String str){
        boolean flag = false;
        //静态定义字符数组
        char[] ch1 = {'_',',','@','&'};
        for(char i:ch1) {
            if(str.indexOf(i)>=0){
                flag = true;
                break;
            }
        }if(flag == false){
            System.out.println("密码必须包含以下特殊字符之一:  _ , @ &");
        }
        return flag;
    }
}
原文地址:https://www.cnblogs.com/0717GG/p/7084429.html