我有一个要读取的名为 UserDetails.txt 的文本文件。
文本文件的每一行如下:
John : Doe : Seattle : jd3 : 1234
Jane : Doe : Olympia : jd4 : 5678
最后两个变量是我要搜索的用户名和密码。
我的代码:
public class LoginFrame extends javax.swing.JFrame
{
private static Scanner keyboard = new
Scanner(System.in);
String username;
String password;
String filePath = "UserDetails.txt";
public LoginFrame() {
initComponents();
}
private void jButtonLoginActionPerformed(java.awt.event.ActionEvent evt) {
username = jTextFieldUsername.getText();
password = jTextFieldPassword.getText();
verifyLogin(username,password,filePath);
}
public static void verifyLogin(String username,
String password, String filepath)
{
boolean match = false;
String tempUserName = "";
String tempPassword = "";
try
{
keyboard = new Scanner(new
File(filepath));
keyboard.useDelimiter("[:\n]");
while(keyboard.hasNext() && !match)
{
tempUserName = keyboard.next();
tempPassword = keyboard.next();
if(tempUserName.trim().equals(username.trim()) && tempPassword.trim().equals(password.trim()))
{
match = true;
}
}
keyboard.close();
System.out.print(match);
}
catch (Exception e)
{
System.out.print("Error");
}
}
我遇到的问题是我不确定如何区分用户名和密码与用户的名字和姓氏。仅当用户名和密码是文本文件中仅有的两个变量(删除了名字和姓氏)时,使用定界符才能找到这两个特定值。
答案 0 :(得分:0)
阅读整行,然后就可以使用
String str = "John : Doe : Seattle : jd3 : 1234"; // input line that you read from file
String[] arr = str.split(" : ");
String username = arr[3]; // as index starts from 0;
String password = arr[4]; // similarly you can get other values
将其转换为一个字符串数组,该字符串的用户名将位于索引3 和密码在索引4