用户输入密码,要求密码满足长度大于6位,并且包含大小写和数字,如果不满足这些条件,就抛出MyException这个异常(MyException为自定义异常类,要求程序补货这个异常并作出相应的处理)
这是我写的代码,可以运行,并且各种情况都测试过了,满足题目要求,但我感觉有点繁琐,请大神帮我修改下,找到做这道题的最简方法,谢谢!
代码如下:
package MyException;
public class MyException extends Exception{
public MyException(){
}
public MyException(String s){
super(s);
}
}
package MyException;
public class Admin {
public static void check(String passWord) throws MyException {
if (passWord.length() < 6) {
throw new MyException("输入的密码长度小于6位,请重新输入!");
} else {
char[] chs = passWord.toCharArray();
int upper = 0;
int lower=0;
int digit=0;
for (char ch : chs) {
if (Character.isUpperCase(ch)) {
upper++;
}
else if( Character.isLowerCase(ch)){
lower++;
}
else if(Character.isDigit(ch)){
digit++;
}
}
if (upper>0&&lower>0&&digit>0) {
System.out.println("密码格式正确!");
}else {
throw new MyException("输入的密码不包含数字或大小写字母,请重新输入!");
}
}
}
}
package MyException;
import java.util.Scanner;
public class MyExceptionDemo {
public static void main(String[] args) throws MyException{
System.out.println("请输入你的登陆密码:");
Scanner sc=new Scanner(System.in);
String passWord=sc.nextLine();
sc.close();
Admin.check(passWord);
}
} |
|