正则和异常配合使用

要求: 模拟录入学生信息,学生信息有如下字段

​ 姓名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);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头发乱了_257

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值