java如何判斷使用者名稱和密碼? Java驗證使用者名稱與密碼
假設在某倉庫管理系統的登入介面中需要輸入使用者名稱和密碼,其中使用者名稱只能由6~10 位數字組成,密碼只能有6 位,任何不符合使用者名稱或密碼要求的情況都視為異常,並且需要捕獲並處理該異常。
相關影片教學分享:java影片教學
以下使用自訂例外類別來完成使用者登入資訊的驗證功能,實作步驟如下。
(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 登录成功!
以上是java如何判斷使用者名稱和密碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!