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; } }