Поиск слова в файле (без вспомогательных коллекций)

250
15 марта 2017, 16:42

Господа, добрый день. Прошу помощи.

Нужно написать код, который поможет установить факт наличия слова в файле (т.е. результат тупо true/false). К примеру — у меня есть файл .txt, и мне нужно определить, есть ли в нём слово (например "stackoverflow")?

Но! В массив записывать нельзя. Задача в том, что нужно установить факт наличия слова в процессе чтения файла. Подскажите куда копать?

P.S. 1000 извинений господа, я неправильно объявил ограничения: мне разрешено использовать массив — нельзя коллекции.

Answer 1

Java 8

public boolean fileContainsWord(String fileName, String word) throws IOException {
    return new String(Files.readAllBytes(Paths.get(fileName))).contains(word);
}

Без использования contains:

public boolean fileContainsWord(String fileName, String word) throws IOException {
    return Files.lines(Paths.get(fileName))
            .map(line -> line.split(" *"))
            .flatMap(Arrays::stream)
            .distinct()
            .anyMatch(w -> w.equals(word));
}
Answer 2

Моя вина - забыл уточнить. Мне запрещено использовать методы contains(…) и indexOf(…). Я полагаю от меня требуют реализацию поиска с помощью либо Scanner, либо что то из Readera(a)

Answer 3

У меня получилось так:

boolean isContains = Files
            .lines(Paths.get("file.txt"))
            .anyMatch(e->e.contains("word"));

Не понимаю как можно не используя contains определить содержание. Можно написать вместо этого свой аналог, но суть такая же.

READ ALSO
Как можно изменить цвет буквы?

Как можно изменить цвет буквы?

Можно ли поменять цвет некоторых букв в самом stringxml или программно, как это можно сделать?

312
Данные с 1С в html

Данные с 1С в html

Попробую вкратце описать мою ситуациюЯ пишу сайт для сотрудников компании

331
Новая овл карусель пропадает

Новая овл карусель пропадает

Есть 3 таких овл-каруселей на сайте, все они подключены через один script

405
Выдача сайта в поисковиках

Выдача сайта в поисковиках

Добрый деньСтолкнулся с такой проблемой

302