华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java基礎(chǔ) >> 文章內(nèi)容

Java驗(yàn)證用戶名和密碼

來源:中華考試網(wǎng)  [2020年11月23日]  【

  假設(shè)在某倉庫管理系統(tǒng)的登錄界面中需要輸入用戶名和密碼,其中用戶名只能由 6~10 位數(shù)字組成,密碼只能有 6 位,任何不符合用戶名或者密碼要求的情況都視為異常,并且需要捕獲并處理該異常。

  下面使用自定義異常類來完成對(duì)用戶登錄信息的驗(yàn)證功能,實(shí)現(xiàn)步驟如下。

  1)編寫自定義異常類 LoginException,該類繼承自 Exception。在 LoginException 類中包含兩個(gè)構(gòu)造方法,分別為無參的構(gòu)造方法和含有一個(gè)參數(shù)的構(gòu)造方法,代碼如下:

  public class LoginException extends Exception { public LoginException() { super(); } public LoginException(String msg) { super(msg); }}

  2)創(chuàng)建測(cè)試類 Test08,在該類中定義 validateLogin() 方法,用于對(duì)用戶名和密碼進(jìn)行驗(yàn)證。當(dāng)用戶名或者密碼不符合要求時(shí),使用自定義異常類 LoginException 輸出相應(yīng)的異常信息。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); // 獲取每一個(gè)字符 if (ch >= '0' && ch <= '9') { // 判斷字符是否為0~9的數(shù)字 conUname = true; // 設(shè)置 conUname 變量值為 true } else { // 如果字符不是0~9的數(shù)字,則拋出LoginException異常 conUname = false; throw new LoginException("用戶名中包含有非數(shù)字的字符!"); } } } else { // 如果用戶名長(zhǎng)度不在6~10位之間,拋出異常 throw new LoginException("用戶名長(zhǎng)度必 須在6〜10位之間!"); } if (conUname) { // 如果用戶名格式正確,判斷密碼長(zhǎng)度 if (pwd.length() == 6) { // 如果密碼長(zhǎng)度等于6 con=true; // 設(shè)置con變量的值為true,表示登錄信息符合要求 } else { // 如果密碼長(zhǎng)度不等于6,拋出異常 con = false; throw new LoginException("密碼長(zhǎng)度必 須為 6 位!"); } } } catch(LoginException e) { // 捕獲 LoginException 異常 System.out.println(e.getMessage()); } return con;}

  3)在 Test08 類中添加 main() 方法,調(diào)用 validateLogin() 方法,如果該方法返回 true,則輸出登錄成功的信息。main() 方法的定義如下:

  填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽java課程!害怕學(xué)不會(huì)?助教陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國推薦就業(yè)!

預(yù)約申請(qǐng)免費(fèi)聽java課程

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  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); // 調(diào)用 validateLogin() 方法 if (con) { System.out.println("登錄成功!"); }}

  在本程序的 validateLogin() 方法中使用條件控制語句和 for 循環(huán)語句分別對(duì)用戶名和密碼進(jìn)行了驗(yàn)證。任何不符合用戶名或者密碼要求的情況都拋出自定義異常 LoginException,并在 catch 語句中捕獲該異常,輸出異常信息。

  運(yùn)行程序,當(dāng)用戶輸入的用戶名含有非數(shù)字字符時(shí)將拋出 LoginException 異常,執(zhí)行 catch 語句塊中的代碼打印異常信息,如下所示。

  用戶名:

  xiake8!

  密碼:

  123456

  用戶名中包含有非數(shù)字的字符!

  當(dāng)用戶輸入的用戶名長(zhǎng)度不在 6~10 位時(shí)同樣會(huì)拋出 LoginException 異常并打印異常信息,如下所示。

  用戶名:

  administrator

  密碼:

  123456

  用戶名長(zhǎng)度必 須在6~10位之間!

  當(dāng)用戶輸入的登錄密碼不等于 6 位時(shí)也會(huì)拋出 LogWException 異常,并打印出異常信息,如下所示。

  用戶名:

  20181024

  密碼:

  12345

  密碼長(zhǎng)度必 須為 6 位!

  當(dāng)用戶輸入的用戶名和密碼都符合要求時(shí),則打印登錄成功的信息,如下所示。

  用戶名:

  20181024

  密碼:

  123456

  登錄成功!

責(zé)編:fushihao

上一篇:Java自定義異常

下一篇: 沒有了

  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
怀柔区| 霍林郭勒市| 定陶县| 吴忠市| 莫力| 固镇县| 孝感市| 茂名市| 郧西县| 五常市| 江陵县| 陵水| 安吉县| 洛南县| 明溪县| 荣昌县| 涿州市| 周宁县| 麟游县| 阜平县| 长乐市| 永福县| 灵山县| 上思县| 万年县| 桂阳县| 雷波县| 镇宁| 浦北县| 泌阳县| 满洲里市| 徐水县| 米林县| 广州市| 奈曼旗| 牟定县| 明光市| 汉中市| 西盟| 龙泉市| 西华县|