Дамы и господа, нужна Ваша помощь!
Программа работает, но не проходит валидацию по последнему пункту. Пояснения ментора, что "Проверь, почему программа находит не все слова "world" в файле." какое-то некорректное, программа нашла и посчитала 4 слова world как и требуется в задании. Что не так?
Проверял по тестовому тексту:
"The English language is now spoken in more than 100 countries. Varieties of World English include American English, Australian English, Babu English, Banglish, British English, Canadian English, Caribbean English, Chicano English, Chinese English, Denglish (Denglisch), Euro-English, Hinglish, Indian English, Irish English, Japanese English, New Zealand English, Nigerian English, Philippine English, Scottish English, Singapore English, South African English, Spanglish, Taglish, Welsh English, West African Pidgin English, and Zimbabwean English.
In an article titled "Squaring Circles," in the International Journal of Applied Linguistics, linguist Braj Kachru has divided the varieties of World English into three concentric circles: inner, outer, and expanding. Although these labels are imprecise and in some ways misleading, many scholars would agree with [academic author and writer,] Paul Bruthiaux, [Ph.D.,] that they offer "a useful shorthand for classifying contexts of English worldwide." Kachru also provides a simple graphic of the circle model of World Englishes in the slideshow, "World Englishes: Approaches, Issues, and Resources.""
package com.javarush.task.task19.task1907;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Считаем слово
Считать с консоли имя файла.
Файл содержит слова, разделенные знаками препинания.
Вывести в консоль количество слов "world", которые встречаются в файле.
Закрыть потоки.
Requirements:
1. Программа должна считывать имя файла с консоли (используй BufferedReader).
2. BufferedReader для считывания данных с консоли должен быть закрыт.
3. Программа должна считывать содержимое файла (используй FileReader c конструктором принимающим String).
4. Поток чтения из файла (FileReader) должен быть закрыт.
5. Программа должна выводить в консоль количество слов "world", которые встречаются в файле.
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileReader fileReader = new FileReader(reader.readLine());
StringBuilder string = new StringBuilder();
while (fileReader.ready()) {
string.append((char)fileReader.read());
}
String text = String.valueOf(string).toLowerCase().replaceAll("\\p{P}","");
String[] words = text.split(" ");
int count=0;
for (String word : words) {
if (word.equals("world")) {
count++;
}
}
System.out.println(count);
fileReader.close();
reader.close();
}
}