Java 扫描仪只能识别文本文件中的某些行,但不能识别其他行
我为这个java程序导入了一个包含姓名和性别的txt文件。扫描仪应该接受用户输入(姓名和性别),逐行比较,在文本文件中找到它,然后打印找到姓名的那一行。但是,只有一些名称有效,而其他名称无效。我想这可能是因为程序只每隔一行读取一次,但我不确定这是否是问题所在,或者如何解决它。 链接到名称文件:Java 扫描仪只能识别文本文件中的某些行,但不能识别其他行,java,text-files,java.util.scanner,Java,Text Files,Java.util.scanner,我为这个java程序导入了一个包含姓名和性别的txt文件。扫描仪应该接受用户输入(姓名和性别),逐行比较,在文本文件中找到它,然后打印找到姓名的那一行。但是,只有一些名称有效,而其他名称无效。我想这可能是因为程序只每隔一行读取一次,但我不确定这是否是问题所在,或者如何解决它。 链接到名称文件: }是否总是相同的名称处理不正确?你能提供一个不起作用的名字的例子吗?names.txt的信息似乎是列而不是行?您是否尝试过调试输出,以查看name、gender、nameText、genderext的值?
}是否总是相同的名称处理不正确?你能提供一个不起作用的名字的例子吗?
names.txt
的信息似乎是列而不是行?您是否尝试过调试输出,以查看name
、gender
、nameText
、genderext
的值?您的程序似乎运行良好。我从文件中选择了随机名称并对其进行了测试。它按预期工作。您对哪些名称有问题?你能把这些箱子中的任何一个放进去吗。
public static void fileSearch() throws FileNotFoundException {
System.out.println("What name are you looking for?");
Scanner scan = new Scanner(System.in);
String name = scan.nextLine();
String gender = scan.nextLine();
File file = new File("names.txt");
Scanner fileScan = new Scanner(file);
while (fileScan.hasNextLine()) {
String line = fileScan.nextLine();
Scanner lineScan = new Scanner(line);
String nameText = lineScan.next();
String genderText = lineScan.next();
if (name.equalsIgnoreCase(nameText) && gender.equalsIgnoreCase(genderText)) {
System.out.println(line);
}
}
}