我有一個具有以下設計的文本檔案:
FirstName= xxxxx
LastName= xxxxx
Username= qwerty
Password= qwerty100
Email ID= xx@gmail.com
PhoneNumber= 12345678
____________
FirstName= yyyyy
LastName= yyyyy
Username= qwerty999
Password= pass100
Email ID= yy@gmail.com
PhoneNumber= 1235326
我的任務是撰寫一個登錄/注冊程式。上面的文本是由注冊表單生成的。注冊程式要求用戶輸入用戶名和密碼,如果它匹配任何用戶名和相應的密碼,用戶使用終端上的成功登錄訊息成功登錄
例如:如果用戶輸入用戶名:qwerty999 和密碼:pass100,程式顯示成功登錄訊息,如果沒有找到與用戶輸入匹配的資料庫,則顯示錯誤訊息并終止程式
我的主要問題是我無法在文本檔案中搜索用戶輸入的輸入用戶名和密碼。我希望它被搜索并存盤在程式可以與用戶輸入進行比較的另一個變數中
uj5u.com熱心網友回復:
將檔案資料作為字串獲取后,您可以使用 Regex 命名組來檢查此用戶是否存在,例如,此代碼將檢查它是否存在,它將回傳其他資訊給您,如果不存在,它將給出你的錯誤資訊,你可以擴展它
public static void main(String[] args) {
String input = "FirstName= xxxxx\n"
"LastName= xxxxx\n"
"Username= qwerty\n"
"Password= qwerty100\n"
"Email ID= [email protected]\n"
"PhoneNumber= 12345678\n"
"\n"
"____________\n"
"\n"
"FirstName= yyyyy\n"
"LastName= yyyyy\n"
"Username= qwerty999\n"
"Password= pass100\n"
"Email ID= [email protected]\n"
"PhoneNumber= 1235326";
String username = "qwerty";
String password = "qwerty100";
Pattern pattern = Pattern.compile(
"FirstName= ([a-zA-Z] )\n"
"LastName= ([a-zA-Z] )\n"
"Username= " Pattern.quote(username) "\n"
"Password= " Pattern.quote(password) "\n"
"Email ID= (. )\n"
"PhoneNumber= (\\d )");
Matcher matcher = pattern.matcher(input);
boolean isValidUser = matcher.find();
if (isValidUser) {
String firstName = matcher.group(1);
String lastName = matcher.group(2);
String emailId = matcher.group(3);
String phoneNumber = matcher.group(4);
} else {
System.out.println("No User with this username and password");
}
}
有關此主題的更多資訊,請搜索 Regex named group
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/381452.html
