自学内容网 自学内容网

Java实现系统注册验证

1.案例描述

进行系统注册时通常需要输入用户名和密码,其中用户名要求由8个字母字符组成、密码由6个 (含6) 以上数字字符组成。满足要求,则提示“注册成功”,否则根据实际情况提示“**不符合要求”(**为用户名或密码)

2.运行结果

实现思路

(1) 定义 login 类 写入登录认证的成员方法 login 同时两个形参 up 皆为注册时的数据,通过形参传递进来判断,在

saber() 中写我们的登录判断,关键代码是键盘录入语句以及字符串比较 equals

(2) 定义 测试主类 register 实例化login类 为的是拿到saber() 方法, 输出注册规则打印语句,键盘录入拿到用户名和密码并且判断是否符合注册规则,符合则成功注册开始登陆 调用 login类中的saber() 方法,进行登陆语句的判断, 登陆成功进入系统 程序结束

 实现代码

定义 login 类里面写入 login 成员方法 并且带有两个形参 up 代码传递而来的用户名和密码

class  login{
  public  void saber(String u,String p){
  }
}

login ()成员方法中 写好我们的键盘录入以及equals 比较语句 备用,配合if 语句对后面传递而来的用户名和密码进行判断比较

class  login{
    public  void saber(String u,String p){
        System.out.println("\t\t=============登录=============\n");
        Scanner input = new Scanner(System.in);
        System.out.print("输入用户名:");
        String username = input.nextLine();
        System.out.print("输入密码:");
        String password = input.nextLine();
        if (username.equals(u) || password.equals(p)){
            System.out.println("登录成功进入系统");
        }else {
            System.out.println("用户名或密码错误,请重新登录");
        }
    }
}

测试主类 register 中 ,实现的代码也非常简单

(1) 首先拿到 login() 类进行实例化,再进行注册提示的打印语句,输出规则

(2) 键盘录入语句 依次写入用户名和密码

(3) if 语句开始判断是否符合规则,因为用户名只能是8位数的字母,密码只能是0-9的数字 6位或6位以上,其实这里的规则还是很好理解的,但是由于对正则表达式不熟悉 一开始并没有想到使用正则, 想到的是定义2个字符数组,1个数组放24个字母,1个数组放0-9的数字,依次进行for循环比较字符串遍历,确保每个输入的值都符合规则, 但是这样太傻了,后面才想到利用到正则,希望大家无论是在学习编程还是学习其他 还是要多思考 利用更少的方式达到我们的目的,但是走弯路踩坑也对自身帮助也很大

规则的if语句 

"[a-zA-Z]{8}" : 在大小写24字母内 并且只能是8位  符合用户名规则
"\\d{6,}"     :  在0-9数字之间 只能是6位或者大于6位  符合密码规则
&&            : 逻辑语句 表示两边都需要符合规则才可以成立



if (username.matches("[a-zA-Z]{8}") && password.matches("\\d{6,}")) {
    System.out.println("注册成功,开始登录");
    gin.saber(username,password);  // 符合后传入用户名和密码 进行登陆判断
}

(4) 题目还写到 根据实际情况提示“不符合要求”(为用户名或密码) ,所以要对 用户名和密码分别做判断,哪个不符合要求 就提示用户哪个错误,但是注册时可以提示这些,登陆的话最好不要提示, 有的人可以通过这些账号或密码这些回显信息进行恶意的破解,账户正确 密码错误的话是不是可以知道账户是正确的,只是密码错误了,那么恶意的人就可以暴力的破解密码这些,所以在登陆上一旦错误账户和密码均提示错误即可,不需要单一提示某一项,当然这是题外话

if (username.matches("[a-zA-Z]{8}") && password.matches("\\d{6,}")) {
            System.out.println("注册成功,开始登录");
            gin.saber(username,password);
        } else {
            if (!username.matches("[a-zA-Z]{8}")) {
                System.out.println("用户名不符合要求");
            }
            if (!password.matches("\\d{6,}")) {
                System.out.println("密码不符合要求");
            }
        }

 代码

import java.util.Scanner;
class  login{
    public  void saber(String u,String p){
        System.out.println("\t\t=============登录=============\n");
        Scanner input = new Scanner(System.in);
        System.out.print("输入用户名:");
        String username = input.nextLine();
        System.out.print("输入密码:");
        String password = input.nextLine();
        if (username.equals(u) || password.equals(p)){
            System.out.println("登录成功进入系统");
        }else {
            System.out.println("用户名或密码错误,请重新登录");
        }
    }
}
public class register {
    public static void main(String[] args) {
        login gin = new login(); // 实例对象
        System.out.println("\n\t\t=============注册规则=============\n" +
          "用户名:求由8个字母字符组成\t\t密码:由6个(含6)以上数字字符组成\n");
        Scanner input = new Scanner(System.in);
        System.out.print("输入用户名:");
        String username = input.nextLine();
        System.out.print("输入密码:");
        String password = input.nextLine();
        if (username.matches("[a-zA-Z]{8}") && password.matches("\\d{6,}")) {
            System.out.println("注册成功,开始登录");
            gin.saber(username,password);
        } else {
            if (!username.matches("[a-zA-Z]{8}")) {
                System.out.println("用户名不符合要求");
            }
            if (!password.matches("\\d{6,}")) {
                System.out.println("密码不符合要求");
            }
        }
    }
}

原文地址:https://blog.csdn.net/qq_49990221/article/details/142986112

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!