【问题标题】:Search and print text file using java使用java搜索和打印文本文件
【发布时间】:2015-02-17 00:26:53
【问题描述】:
如何从 .txt 文件中搜索文本并打印出特定的文本行?
例如我有一个名为 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);
}
}