以下是代码:
BufferedReader in= new BufferedReader(new FileReader("C:\\Users\\ASUS\\Desktop\\123.txt"));
Scanner scanner= new Scanner(in);
while((scanner.findInLine("abc"))!=null){
if(scanner.hasNext()){
System.out.println(scanner.next());
}
}
findInLine仅搜索第一行而不搜索其他行。所以它什么都不打印。 我该如何解决这个问题?
答案 0 :(得分:4)
你应该遍历所有行 - 然后如果行匹配,则将其打印出来(或其他)。例如:
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// Now check the line, and do whatever you need.
}
或者你仍然可以使用findInLine
,只是明确地调用nextLine
:
while (scanner.hasNextLine()) {
if (scanner.findInLine(...)) {
...
}
// Read to the end of the line whether we found something or not
scanner.nextLine();
}