此 CSV 阅读器还通过使用 map 工具检查电子邮件地址和密码的有效性。
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");
}
}
我遇到的问题是,在运行时,当我将“//”更改为字符串密码和电子邮件并尝试使用我包含程序“运行”但控制台窗口未出现的扫描仪时我必须强制停止程序才能停止运行。正如我在这里展示的那样使用它时,它工作得很好。以前我有一个与静态和非静态变量相关的扫描器错误。我查阅了它们并尝试使用实例变量但收效甚微。 是我声明扫描仪的方式有误,还是我不能将 Mapping 与扫描仪结合使用?
编辑:我目前在 Mac 上使用 BlueJ,因为我是 Java 编程的新手。是的,它确实像我引用的那样工作,只有当我尝试使用扫描仪时它才会停止工作。
最佳答案
Is the way in which I have declared the scanner wrong or can I not use Mapping in conjuction with the scanner?
Scanner
声明似乎是正确的。不,没有禁止同时使用 Java 标准库的任何两个部分的限制。所以将 Map
和 Scanner
一起使用是完全没问题的。
目前,SO 社区的最佳猜测是您正在使用具有内置控制台窗口/ View 的 IDE(如 eclipse)。在此假设下,假设您希望打开一个黑色终端/cmd 窗口,但在大多数 IDE 中情况并非如此。在 Eclipse 中,“控制台 View ”是您进行输入的地方。在 Netbeans 中,这将是输出窗口。
关于Java 扫描器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388580/