Java判斷使用者名稱和密碼是否符合要求過程詳解
這篇文章主要介紹了Java判斷使用者名稱和密碼過程詳解,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
假設在某倉庫管理系統的登入介面中需要輸入使用者名稱和密碼,其中使用者名稱只能由 6~10 位數字組成,密碼只能有 6 位,任何不符合使用者名稱或者密碼要求的情況都視為異常,並且需要捕獲並處理該異常。
下面使用自定義異常類來完成對使用者登入資訊的驗證功能,實現步驟如下。
(1) 編寫自定義異常類 LoginException,該類繼承自 Exception。在 LoginException 類中包含兩個構造方法,分別為無參的構造方法和含有一個引數的構造方法,程式碼如下:
public class LoginException extends Exception { public LoginException() { super(); } public LoginException(String msg) { super(msg); } }
(2) 建立測試類 Test08,在該類中定義 validateLogin() 方法,用於對使用者名稱和密碼進行驗證。當用戶名或者密碼不符合要求時,使用自定義異常類 LoginException 輸出相應的異常資訊。validateLogin() 方法的定義如下:
public Boolean validateLogin(String username,String pwd) { Boolean con=false; //使用者名稱和密碼是否正確 Boolean conUname=false; //使用者名稱格式是否正確 try { if(username.length()>=6&&username.length()<=10) { for (int i=0;i<username.length();i++) { char ch=username.charAt(i); //獲取每一個字元 if(ch>='0'&&ch<='9') { //判斷字元是否為0~9的數字 conUname=true; //設定 conUname 變數值為 true } else { //如果字元不是0~9的數字,則丟擲LoginException異常 conUname=false; throw new LoginException("使用者名稱中包含有非數字的字元!"); } } } else { //如果使用者名稱長度不在6~10位之間,丟擲異常 throw new LoginException("使用者名稱長度必須在6〜10位之間!"); } if(conUname) { //如果使用者名稱格式正確,判斷密碼長度 if(pwd.length()==6) { //如果密碼長度等於6 con=true; //設定con變數的值為true,表示登入資訊符合要求 } else { //如果密碼長度不等於6,丟擲異常 con=false; throw new LoginException("密碼長度必須為 6 位!"); } } } catch(LoginException e) { //捕獲 LoginException 異常 System.out.println(e.getMessage()); } return con; }
(3) 在 Test08 類中新增 main() 方法,呼叫 validateLogin() 方法,如果該方法返回 true,則輸出登入成功的資訊。main() 方法的定義如下:
public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("使用者名稱:"); String username=input.next(); System.out.println("密碼:"); String password=input.next(); Test08 lt=new Test08 (); Boolean con=lt.validateLogin(username,password); //呼叫 validateLoginO 方法 if(con) { System.out.println("登入成功!"); } }
在本程式的 validateLogin() 方法中使用條件控制語句和 for 迴圈語句分別對使用者名稱和密碼進行了驗證。任何不符合使用者名稱或者密碼要求的情況都拋出自定義異常 LoginException,並在 catch 語句中捕獲該異常,輸出異常資訊。
執行程式,當用戶輸入的使用者名稱含有非數字字元時將丟擲 LoginException 異常,執行 catch 語句塊中的程式碼列印異常資訊,如下所示。
使用者名稱: xiake8! 密碼: 123456 使用者名稱中包含有非數字的字元!
當用戶輸入的使用者名稱長度不在 6~10 位時同樣會丟擲 LoginException 異常並列印異常資訊,如下所示。
使用者名稱: administrator 密碼: 123456 使用者名稱長度必須在6~10位之間!
當用戶輸入的登入密碼不等於 6 位時也會丟擲 LogWException 異常,並打印出異常資訊,如下所示。
使用者名稱: 20181024 密碼: 12345 密碼長度必須為 6 位!
當用戶輸入的使用者名稱和密碼都符合要求時,則列印登入成功的資訊,如下所示。
使用者名稱: 20181024 密碼: 123456 登入成功!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。