このCSVリーダーは、マップツールを使用してメールアドレスとパスワードの有効性もチェックします。
import java.io.*;
import java.util.*;
public class CSVReaders{
public static void run(String[] args) throws Exception {
Map<String, String> emailPasswordMap = new HashMap<String, String> ();
BufferedReader CSVFile =
new BufferedReader(new FileReader("testa453.csv"));
String dataRow = CSVFile.readLine();
while (dataRow != null){
String[] dataArray = dataRow.split(",");
emailPasswordMap.put (dataArray[0], dataArray[1]);
dataRow = CSVFile.readLine();
}
CSVFile.close();
//Scanner in = new Scanner(System.in);
//String email = in.nextLine();
//String password = in.nextLine();
String password = ("raj45");
String email = ("rakhter@bluebell.org");
if (password.equals (emailPasswordMap.get (email))) {
System.out.println ("The entered email and password are valid");
}
else {
System.out.println ("The entered email and password are invalid");
}
}
}
私が得ている問題は、実行時に「//」を文字列のパスワードと電子メールに変更し、プログラム「実行」を含めたスキャナーを使用しようとすると、コンソールウィンドウが表示されないため、プログラムの実行を停止するには、プログラムを強制的に停止します。私がここに示したようにそれを使用している間、それは完全に機能します。以前、静的変数と非静的変数に関連するスキャナーでエラーが発生しました。私はそれらを調べてインスタンス変数を使おうとしましたが、ほとんど成功しませんでした。スキャナーを宣言する方法が間違っていますか、それともスキャナーと組み合わせてマッピングを使用できませんか?
編集:私はJavaプログラミングにかなり慣れていないので、現在MacでBlueJを使用しています。そして、はい、私が引用したように動作します。スキャナーを使おうとすると動作を停止します。