Вопрос возник при решении задачи. Я увидел один из советов использовать регулярку \\W при сплите строки . ОК. Прочитал и посмотрел регулярные выражения . \\W - это non-character символы . То есть в строке 16 я это использую и получаю результат (без кавычек):
" world world wOrld wor ld world "
И тут я начал тупить:) Почему осталось слово world после сплита? Ведь при таком сплите строка должна разбиться по пробелам. запятым и тд ... Подскажите пожалуйста как работает здесь сплит и где ошибка в рассуждениях.
Считаем слово
Считать с консоли имя файла.
Файл содержит слова, разделенные знаками препинания.
Вывести в консоль количество слов "world", которые встречаются в файле.
Закрыть потоки.
Требования:
1. Программа должна считывать имя файла с консоли (используй BufferedReader).
2. BufferedReader для считывания данных с консоли должен быть закрыт.
3. Программа должна считывать содержимое файла (используй FileReader c конструктором String).
4. Поток чтения из файла (FileReader) должен быть закрыт.
5. Программа должна выводить в консоль количество слов "world", которые встречаются в файле.
Текст в моем файле :
читать с консоли имя файла.
Файл содержит слова, разделенные знаками препинания.
Вывести в консоль количество слов "world", которые встречаются в файле.
Закрыть потоки."world" "wOrld" wor
ld
"world"
*/
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 path = "/Users/alexander.krivenko/Documents/java_Training/JavaRush/JavaRushTasks/2.JavaCore/src/com/javarush/task/task19/task1907/";
reader = new BufferedReader(new FileReader(path + fileName));
int count = 0;
StringBuffer buffer = new StringBuffer();
while (reader.ready()) {
String a = reader.readLine();
String[] words = a.split("(\\W)");
for (int i = 0; i < words.length; i++) {
System.out.print(words[i]+" ");
}
}
reader.close();
}
}