Пробую файл с такой строкой, где то в комментариях нашел:
world,bad:java;world!javaworld-world
сколько строк он должен найти?
если 2 не принимает
если 3 не принимает
если 4 не принимает
package com.javarush.task.task19.task1907;
/*
Считаем слово
Считать с консоли имя файла.
Файл содержит слова, разделенные знаками препинания.
Вывести в консоль количество слов "world", которые встречаются в файле.
Закрыть потоки.
Требования:
1. Программа должна считывать имя файла с консоли (используй BufferedReader).
2. BufferedReader для считывания данных с консоли должен быть закрыт.
3. Программа должна считывать содержимое файла (используй FileReader c конструктором принимающим String).
4. Поток чтения из файла (FileReader) должен быть закрыт.
5. Программа должна выводить в консо
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
public static void main(String[] args) throws IOException {
try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileReader fReader = new FileReader(reader.readLine());
BufferedReader sReader = new BufferedReader(fReader))
{
String Sbuffer = "";
while(sReader.ready()) Sbuffer += sReader.readLine();
String[] sArray = Sbuffer.split("[-.?!)(,:]");
int count = 0;
for(String s : sArray) if(s.equals("world")) count++;
System.out.println(count);
}
/*
{
String Sbuffer = "";
while(sReader.ready()) Sbuffer += sReader.readLine();
int count = 0;
while(Sbuffer.contains("world")){
count++;
int i = Sbuffer.indexOf("world") + 5;
Sbuffer = Sbuffer.substring(i);
}
System.out.println(count);
}
*/
/*{
int countWorld = 0;
char[] chBuffer = new char[5];
while(fReader.ready()){
if ((chBuffer[0] = (char)fReader.read()) == 'w') {
fReader.read(chBuffer,1,4);
if (String.valueOf(chBuffer).equals("world")) countWorld++;
}
}
System.out.println(countWorld);
}*/
}
}