1. 程式人生 > 程式設計 >Java判斷使用者名稱和密碼是否符合要求過程詳解

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
登入成功!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。