2 different solutions failed. (Second is commented in code)
package com.codegym.task.task19.task1907;
/*
Counting words
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
// String fileName = "f5.txt";
reader.close();
FileReader fileReader = new FileReader(fileName);
int counter = 0;
// Solution-1
String str = "";
String [] strArray;
while (fileReader.ready()) {
str += String.valueOf((char)fileReader.read());
}
fileReader.close();
strArray = str.split("\\p{Punct}");
for (String s : strArray) {
if (s.equals("world")) {
counter++;
}
}
// Solution-2 (Failed)
// while (fileReader.ready()) {
// s = String.valueOf((char)fileReader.read());
// if(!".,;:?!'_()[]\"/-'".contains(s)) {
// str += s;
// } else {
// if(str.equals("world")){
// counter++;
// }
// str = "";
// }
// }
// fileReader.close();
//
// if(str.equals("world")){
// counter++;
// }
System.out.println(counter);
}
}