В общем. При такой записи валидатор выдает:"Проверь, почему программа находит больше слов "world" чем есть в файле."
При записи text.split("\\W[_]"); валидатор пишет:"Проверь, почему программа находит не все слова "world" в файле."
При такой записи text.split("\\W[ ]"); валидатор пишет:"Проверь, почему программа находит не все слова "world" в файле."
Проверял с такими значениями:
world!
world.
world(
world)
world
world?
world;
world:
package com.javarush.task.task19.task1907;
/*
Выделяем числа
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName;
fileName = reader.readLine();
FileReader fileReader = new FileReader(fileName);
int resultAll = 0;
char[] buf = new char[1000];
while (fileReader.ready()) {
int useless = fileReader.read(buf);
StringBuilder builder = new StringBuilder();
builder.append(buf);
String text = builder.toString();
String[] arraySplit = text.split("\\W");
for (int i = 0; i < arraySplit.length; i++) {
Pattern p = Pattern.compile("^world$");
Matcher matcher;
matcher = p.matcher(arraySplit[i]);
if (matcher.matches()) resultAll++;
}
}
System.out.println(resultAll);
reader.close();
fileReader.close();
}
}