BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file = reader.readLine();
reader.close();
String buffer = "";
try(FileReader fileReader = new FileReader(file)) {
while (fileReader.ready()) {
buffer += String.valueOf((char) fileReader.read());
}
}
int count = 0;
String[] line = buffer.split("[^a-zA-Z0-9]");
for(String s : line) {
if(s.equalsIgnoreCase("world")) {
count++;
}
}
System.out.println(count);
}
Anutka
42 уровень
String[] line = buffer.split("[^a-zA-Z0-9]") - подскажите, пожалуйста, почему в массиве получаются пустые строчки "" и world?
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
22 января 2022, 21:33
Ну вот такой знак препинания, как многоточие+пробел (... ) произведёт три пустые строчки. А точка+пробел - одну.
Кстати, эту задачу многие решают неправильно, включая и тебя, пытаясь угадать, какие символы могут быть в словах, какие символы - знаки препинания.
Но единственное конкретное, что упоминается в условии - это слово world. Вот по нему и надо сплитить, это будет самое правильное. Все остальные решения будут строиться на догадках и допущениях, например, вот твоё решение строится на предположении, что слова состоят только из латинских букв и цифр. А как быть с дефисом? Он может быть и в слове, а может быть и знаком препинания. Как быть с комбинированным текстом из разных алфавитов - например, латиницы и кириллицы?
0
Anutka
24 января 2022, 15:58
Да, согласна, поспешила и ступила
0