在文件中搜索String,如果找到则返回该String

lan*_*cer 7 java io java.util.scanner

如何在txt文件中搜索用户输入的String,然后将该String返回到控制台.我写了一些下面不起作用的代码,但我希望它可以说明我的观点......

public static void main(String[] args) {
  searchforName();
}

   private static void searchForName() throws FileNotFoundException {
    File file = new File("leaders.txt");
    Scanner kb = new Scanner(System.in);
    Scanner input = new Scanner(file);

    System.out.println("Please enter the name you would like to search for: ");
    String name = kb.nextLine();


    while(input.hasNextLine()) {
        System.out.println(input.next(name));
    }
}
Run Code Online (Sandbox Code Playgroud)

"leaders.txt"文件包含名称列表.

Ami*_*ani 14

您可以创建一个单独Scanner的行来逐行读取文件并以这种方式匹配...

final Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
   final String lineFromFile = scanner.nextLine();
   if(lineFromFile.contains(name)) { 
       // a match!
       System.out.println("I found " +name+ " in file " +file.getName());
       break;
   }
}
Run Code Online (Sandbox Code Playgroud)

关于是否应该使用a Scanner或a BufferedReader来读取文件,请阅读此答案.