要求: 模拟录入学生信息,学生信息有如下字段
姓名name
专业major
学号no
密码pwd
自定义一个输入时的运行时异常,控制如下一下问题
1、姓名不能有数字和特殊符号,长度不能超过6
2、专业不能有数字
3、学号不能0打头,学号10位,纯数字
4、密码长度8-12位,只包含数字和英文字符
测试类中处理掉自己抛出的运行时异常
public class MyException extends RuntimeException {
public MyException() {
}
public MyException(String message) {
super(message);
}
public class Student {
private String name;
private String major;
private String no;
private String pwd;
public Student() {
}
public Student(String name, String major, String no, String pwd) {
this.name = name;
this.major = major;
this.no = no;
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
if (!(name.matches("[\\u4e00-\\u9fa5 || a-zA-Z]{1,6}"))){
throw new MyException("姓名不能有数字和特殊符号,长度不能超过6");
}
this.name = name;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
if (major.matches("[\\d]{1,}")) {
throw new MyException("专业不能有数字");
}
this.major = major;
}
public String getNo() {
return no;
}
public void setNo(String no) {
if (!(no.matches("^[1-9]\\d{9}"))){
throw new MyException("学号不能0打头,学号10位,纯数字");
}
this.no = no;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
if (!(pwd.matches("[0-9a-zA-Z]{8,12}"))) {
throw new MyException("密码长度8-12位,只包含数字和英文字符");
}
this.pwd = pwd;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", major='" + major + '\'' +
", no='" + no + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
public class demo01 {
public static void main(String[] args) {
Student student = new Student();
student.setName("张三15215");
student.setMajor("java1565");
student.setNo("012215566565");
student.setPwd("@@151551555");
// 1、姓名不能有数字和特殊符号,长度不能超过6
//
// 2、专业不能有数字
//
// 3、学号不能0打头,学号10位,纯数字
//
// 4、密码长度8-12位,只包含数字和英文字符
// System.out.println(student.getName()+student.getMajor()+student.getNo()+student.getPwd());
System.out.println(student);
}
}