2017-05-06 18 views
-1

私はファイル内容とユーザー入力を比較しようとしています。プログラムは特定のファイルから読み込み、ユーザーの文字列入力をチェックします。 ArrayListとユーザー入力を比較する際に問題があります。ArrayListとユーザー入力の比較

パブリッククラスbtnLoginListenerは、私はあなたが要素listexistsかどうかを確認しようとしていると仮定していますリスナー {

@Override 
    public void handleEvent(Event arg0) 
    { 

     //variables for the class 
     username = txtUsername.getText(); 
     password = txtPassword.getText(); 

     MessageBox messageBox = new MessageBox(shell, SWT.OK); 

     try { 
      writeFile(); 
      messageBox.setMessage("Success Writing the File!"); 
     } catch (IOException x) 
     { 
      messageBox.setMessage("Something bad happened when writing the file!"); 
     } 

     try { 
      readFile("in.txt"); 

     } catch (IOException x) 
     { 
      messageBox.setMessage("Something bad happened when reading the file!" + x); 
     } 

     if (username.equals(names)) 
     { 
      messageBox.setMessage("Correct"); 
     } 
     else 
     { 
      messageBox.setMessage("Wrong"); 
     }  

     messageBox.open(); 
    } 
} 

private static void readFile(String fileName) throws IOException 
{ 
    //use . to get current directory 
    File dir = new File("."); 
    File fin = new File(dir.getCanonicalPath() + File.separator + fileName); 

    // Construct BufferedReader from FileReader 
    BufferedReader br = new BufferedReader(new FileReader(fin)); 


    String line = null; 
    while ((line = br.readLine()) != null) 
    { 
     Collections.addAll(names, line); 
    }  

    br.close(); 
} 
+1

「ArrayListとユーザー入力を比較するのに問題があります。」はあまりにも曖昧です。もう少し説明してください。例外であればスタックトレースを共有してください –

+0

名前の由来を説明できますか? –

+0

名前の種類は何ですか?ユーザー名の種類は何ですか?私はリストと文字列を疑う。どのように文字列がリストと等しくなることができますか?あなたは何を達成しようとしていますか?あなたは "比較"と "照合"を定義しなければなりません。 –

答えて

0

を実装しています。はいの場合は、containsメソッド、here's Javadocを使用する必要があります。

if (username.equals(names))の代わりにif (names.contains(username))を使用できます。

これとは別に、次の変更を行う必要があります。

  • は、ファイルにイベントが呼び出されるたびに読まないでください。静的ファイルを読んでいるときは、一度それを読んでArrayListに保存してください。
  • 変数をusernamepasswordにローカルにします。
  • writeFile()コールを削除するのは、各イベントの動的値を追加/書き込みしない限り削除してください。
関連する問題