【问题标题】:Search and print text file using java使用java搜索和打印文本文件
【发布时间】:2015-02-17 00:26:53
【问题描述】:

如何从 .t​​xt 文件中搜索文本并打印出特定的文本行? 例如我有一个名为 Airlines.txt 的 txt 文件,我搜索 MMHHHAAAA。然后,我想从“MMHHHAAAA:Malaysian Airlines”这一行中提取“Malaysian Airlines”

//Scan file airlines.txt
Scanner scanner = new Scanner(new File("airlines.txt"));
while(scanner.hasNextLine()){
//Will this work?
  String s = scan.nextLine();
  Scanner line = new Scanner(s);
  String airline;
//How do i continue from here to scan for MMHHHAAAA and then print out the following line of text
}
System.out.println("Airline is" + airline);
return airline;
}

【问题讨论】:

    标签: java search text printing


    【解决方案1】:

    您可以在 Java 8 中使用它:

    final Path path = Paths.get("airlines.txt");
    
    final Optional<String> theLine;
    
    try (
        final Stream<String> lines = Files.lines(path, StandardCharsets.UTF_8)
    ) {
        theLine = lines.filter(s -> s.startsWith("MMHHHAAAA:"))
            .findFirst();
    }
    
    if (theLine.isPresent())
        // do something with theLine.get()
    

    【讨论】:

      【解决方案2】:

      您可以使用String.indexOf("") 方法。

      if (s.indexOf("your-search-string") != -1) {
         //matched the pattern
         System.out.println(s);
      }
      

      您可以使用substring() 提取: 之后的部分。 System.out.println(s.substring(":"));

      阅读更多关于Java strings 及其方法的信息。

      【讨论】:

      • 这里缺少如何提取“:”之后的部分字符串。
      【解决方案3】:

      一种可能性……

          Scanner scanner = new Scanner(new File("airlines.txt"));
          while(scanner.hasNextLine()){
      
            String currentLine = scanner.nextLine();
            if(currentLine.indexOf("MMHHHAAAA") != -1){
                String airline = currentLine.split(":")[1];
                System.out.println("Airline is " + airline);
            }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-11
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        相关资源
        最近更新 更多