我正在尝试让用户输入机场名称,程序将从文本文件中搜索以获取匹配的代码,现在我只需要它来读取该行。我在这里看了很多类似的问题,但没有什么对我有用。程序返回else结果而不是找到的结果。
这是我目前的代码
public static void main (String[] args) throws IOException
{
File file = new File("codes01.dat");
Scanner myFile = new Scanner(file);
Scanner kb = new Scanner(System.in);
String line;
System.out.println("Hey man, this is totally leigt, just enter an Airport code and I'll hook you up.");
System.out.print("First, y'all need to give me the file name: ");
String fileName = kb.nextLine();
if (fileName.equalsIgnoreCase("codes01"))
{
System.out.print("Cool, now give me your Airport Name: ");
String AirportName = kb.nextLine();
while (myFile.hasNextLine())
{
line = myFile.nextLine();
String name = myFile.next();
System.out.println(line);
if(name.equalsIgnoreCase(AirportName))
{
System.out.println("IT'S WORKING, I DON'T KNOW HOW BUT IT IS "+line);
break;
}
else
{
System.out.println("Sorry, dude, ain't no airport in my VERY limited list with that name");
break;
}
}
}
答案 0 :(得分:0)
程序返回else结果而不是找到的结果。
这是因为在测试文件中的第一行之后你正在退出循环。
仔细查看您的代码......在上下文中。
if(name.equalsIgnoreCase(AirportName)) {
System.out.println("It is working");
break;
} else {
System.out.println("Sorry");
break; // What????
}
答案 1 :(得分:0)
为什么在if-else块中使用break语句?尝试摆脱break语句,然后执行代码。
if(name.equalsIgnoreCase(AirportName))
{
System.out.println("The name of Airport matches");
}
else
{
System.out.println("Sorry No Match Found");
}
答案 2 :(得分:0)
仔细看看这两行。那里有一个问题。假装你是Scanner
类,逐步完成你头脑中的代码。
line = myFile.nextLine();
String name = myFile.next();