こんにちは私は新しい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名のパスワードと年齢のようにそれらを保存しますそれが私がabcとdを作成した理由です...
私はこの種のログインフォームにまだ慣れていないので、解決策を指定してください。コード全体が必要な場合は、それを求めてください:)
したがって、checkLog()
メソッドでは、大文字と小文字を区別するかどうかについては、ステートメントif(b == username || c == password)
をif(b.equals(username) && c.equals(password))
ORにif(b.equalsIgnoreCase(username) && c.equalsIgnoreCase(password))
する必要があります(大文字と小文字を区別する場合はequals()メソッドを使用し、大文字と小文字を区別しない場合はequalsIgnoreCase()メソッドを使用します)。
それがなぜであるか理解しますか?元のステートメントでは、ログインに成功するには、そのうちの1つだけが真である必要があると言っているためです。改訂されたものでは、両方とも真でなければなりません。また、演算子==
を使用して2つの文字列を比較し、それらが同じ文字列であるかどうかを確認しないでください。それは彼らのアドレスを比較するだけです。
編集:あなたのファイルが以下に示されているようなものである場合:
12ネームパス12
ナメズパス
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;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加