你好,我是一名新的java学生,我一直在研究包含(用户 - 图书馆工作者和书籍)的图书馆系统,所以我试图创建一个登录表单,我已经有一个数组列表,但我做了一个文件流(澄清我让新用户注册并将他/她的信息保存到文件中,如此ID名称密码年龄)所以我试图在库用户类中执行此方法
private Scanner x;
private String user_name , password ;
public void openfile(){
try {x= new Scanner (new File ("E:\\javaapplication1
\\test\\professors.txt"));
}
catch(Exception e){
System.out.println("couldn't find file");
}
}
public void checklog ( String username , String password ){
String a , b ,c ,d ;
while(x.hasNext()){
a = x.next();
b = x.next();
c = x.next();
d = x.next();
if ( b == username ||c == password ){
System.out.println("Loggin successful ");
}
else
System.out.println("Loggin failed wrong id or password ");
break;
然后使用完整代码
在主体中调用它 System.out.println ("Enter your name ");
check_name = reader.next();
System.out.println ("Enter your password ");
check_password =reader.next();
lib_us professor ;
professor = new lib_us();
professor.openfile();
professor.checklog(check_name, check_password);
我收到所有密码错误我将它们保存为4 id名称密码和年龄,这就是为什么我创建了一个b c和d ...
我仍然是这种登录表单的新手,所以请指定我的解决方案,如果您需要整个代码,请索取:)
答案 0 :(得分:0)
因此,在您的checkLog()
方法中,如果区分大小写,则if(b == username || c == password)
语句应为if(b.equals(username) && c.equals(password))
或if(b.equalsIgnoreCase(username) && c.equalsIgnoreCase(password))
(对于区分大小写,请使用equals()方法或非区分大小写的equalsIgnoreCase()方法。)
明白为什么会这样?因为在您的原始陈述中,您只是说其中一个必须是真的才能成功登录。修改后的两个都必须是真的。此外,您不应使用运算符==
来比较两个字符串,以查看它们是否是相同的字符串。那只会比较他们的地址。
编辑: 如果您的文件类似于以下所示:
12名称传递12
13 Namez Passz 13
14 Namezz Passzz 14
尝试使用此代码将其读入并进行比较:
private Scanner x;
private String user_name, password;
public void openFile()
{
try
{
x = new Scanner(new File("FILE PATH"));
}
catch(Exception e)
{System.out.println("Couldn't find file"); System.exit(0);}
}
public boolean checklog(String username, String password)
{
String temp;
String[] info;
while(x.hasNext())
{
temp = x.nextLine();
info = temp.split(" ");
//info[0] = id, info[1] = username, info[2] = password, info[3] = age;
//Right here that means the username and password is correct
if(info[1].equals(username) && info[2].equals(password))
{
System.out.println("Login Successful");
return true;
}
}
System.out.println("Login failed wrong id or password");
return false;
}