使用Java在文本文件中搜索字符串

时间:2015-04-06 01:10:29

标签: java text

我正在尝试让用户输入机场名称,程序将从文本文件中搜索以获取匹配的代码,现在我只需要它来读取该行。我在这里看了很多类似的问题,但没有什么对我有用。程序返回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;
     }
   }

  }

3 个答案:

答案 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();