I am trying to write a method that accepts an input string to be found and an input string to replace all instances of the found word and to return the number of replacements made. I am trying to use pattern and matcher from JAVA regex. I have a text file called "text.txt" which includes "this is a test this is a test this is a test". When I try to search for "test" and replace it with "mess", the method returns 1 each time and none of the words test are replaced.
public int findAndRepV2(String word, String replace) throws FileNotFoundException, IOException { int cnt = 0; BufferedReader input = new BufferedReader( new FileReader(this.filename)); Writer fw = new FileWriter("test.txt"); String line = input.readLine(); while (line != null) { Pattern pattern = Pattern.compile(word, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(line); while (matcher.find()) {matcher.replaceAll(replace); cnt++;} line = input.readLine(); } fw.close(); return cnt; }