findInLine错误仅搜索第一行

时间:2014-01-25 19:57:47

标签: java

以下是代码:

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仅搜索第一行而不搜索其他行。所以它什么都不打印。   我该如何解决这个问题?

1 个答案:

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