Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
RavenCrust
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 82
1

Программа должна искать слово в каждой строчке из текстового файла

07.01.2017, 21:20. Просмотров 433. Ответов 6
Метки нет (Все метки)

парни вопрос.Как написать программу которая бы в качестве аргументов принимала бы слово и файл.Программа ищет слово в каждой строчке из текстового файла и если слово было найдено, то вся строчка выводится на экран....объясните на пальцах. как ее реализовать пожалуйста. хотя бы в теории
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2017, 21:20
Ответы с готовыми решениями:

Программа должна показывать содержимое текстового файла в окне произвольного размера
Тут друг меня попросил сделать задачу такую: Программа должна показывать содержимое текстового...

Скопировать содержимое тестового файла, удалив в каждой строчке предпоследнее слово
Скопировать содержимое тестового файла, удалив в каждой строчке предпоследнее слово, скелет...

Горе-летописец. Первое слово каждой строки текстового файла (первое поле каждой записи в массиве записей)
Горе-летописец. Первое слово каждой строки текстового файла (первое поле каждой записи в массиве...

Удалить в каждой строке текстового файла последнее слово
Выполнить обработку текстового файла. Определить кол-во предложений в исходном тексте.как...

Как в начало каждой строки текстового файла вставить заданное слово?
как в txt в каждую строку перед первым словом в строке написать слово mod? пустых строк нет ...

6
Gukamanav
12 / 11 / 3
Регистрация: 11.08.2016
Сообщений: 78
07.01.2017, 21:37 2
На пальцах не объясню ибо сам дурак, но без регулярных выражений тут врятли обойдется https://ru.wikipedia.org/wiki/%D0%A0...BD%D0%B8%D1%8F
0
korvin_
2406 / 1883 / 341
Регистрация: 28.04.2012
Сообщений: 6,479
07.01.2017, 22:17 3
Цитата Сообщение от Gukamanav Посмотреть сообщение
без регулярных выражений тут врятли обойдется
Легко.
0
Artmal
86 / 85 / 55
Регистрация: 14.11.2015
Сообщений: 1,017
07.01.2017, 23:06 4
Рассмотрим самый простой вариант - путь к файлу будет указываться в самом коде.

Программа будет состоять из одного класса, который в свою очередь будет состоит из двух методов: main и findWord(String word, Path path).

Программный код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
 
public class WordFinder {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("C:\\Users\\Artmal\\Desktop", "File.txt"); //указываем путь к нашему файлу
        printStringWithTheWord("руку", path); //вызываем основной метод
    }
 
    private static void printStringWithTheWord(String word, Path pathToFile) throws IOException {
        List<String> allLinesFromFile = Files.readAllLines(pathToFile, Charset.forName("Cp1251")); //читаем все строки из файла в список
 
        //Выводим текст файла
        System.out.println("Текст из файлa "+ pathToFile.getFileName()); 
        for(String s : allLinesFromFile) System.out.println(s);
        System.out.println("-------------------------------------------------");
 
 
        /*
         * Выводим результаты поиска. Поиск осуществляется следующим образом: берем каждую строку(абзац) файла ->
         * разбиваем ее на отдельные слова -> сравниваем каждое слово строки с искомым словом ->
         * при наличии совпадения печатаем строку(абзац).
         */
        System.out.printf("Слово '%s' найдено в следующих строках(абзацах):\n", word);
        for(int i = 0; i < allLinesFromFile.size(); i++) {
            String[] words = allLinesFromFile.get(i).split("[\\p{Punct}\\s]+");
            for(int j = 0; j < words.length; j++) {
                if(words[j].equalsIgnoreCase(word)) {
                    System.out.println(allLinesFromFile.get(i));
                }
            }
        }
    }
}
File.txt
Кликните здесь для просмотра всего текста

Каждый веб-разработчик знает, что такое текст-«рыба». Текст этот, несмотря на название, не имеет никакого отношения к обитателям водоемов. Используется он веб-дизайнерами для вставки на интернет-страницы и демонстрации внешнего вида контента, просмотра шрифтов, абзацев, отступов и т.д. Так как цель применения такого текста исключительно демонстрационная, то и смысловую нагрузку ему нести совсем необязательно. Более того, нечитабельность текста сыграет на руку при оценке качества восприятия макета.

Самым известным «рыбным» текстом является знаменитый Lorem ipsum. Считается, что впервые его применили в книгопечатании еще в XVI веке. Своим появлением Lorem ipsum обязан древнеримскому философу Цицерону, ведь именно из его трактата «О пределах добра и зла» средневековый книгопечатник вырвал отдельные фразы и слова, получив текст-«рыбу», широко используемый и по сей день. Конечно, возникают некоторые вопросы, связанные с использованием Lorem ipsum на сайтах и проектах, ориентированных на кириллический контент – написание символов на латыни и на кириллице значительно различается.

И даже с языками, использующими латинский алфавит, могут возникнуть небольшие проблемы: в различных языках те или иные буквы встречаются с разной частотой, имеется разница в длине наиболее распространенных слов. Отсюда напрашивается вывод, что все же лучше использовать в качестве «рыбы» текст на том языке, который планируется использовать при запуске проекта. Сегодня существует несколько вариантов Lorem ipsum, кроме того, есть специальные генераторы, создающие собственные варианты текста на основе оригинального трактата, благодаря чему появляется возможность получить более длинный неповторяющийся набор слов.


Output:
Кликните здесь для просмотра всего текста

Текст из файлa File.txt
Каждый веб-разработчик знает, что такое текст-«рыба». Текст этот, несмотря на название, не имеет никакого отношения к обитателям водоемов. Используется он веб-дизайнерами для вставки на интернет-страницы и демонстрации внешнего вида контента, просмотра шрифтов, абзацев, отступов и т.д. Так как цель применения такого текста исключительно демонстрационная, то и смысловую нагрузку ему нести совсем необязательно. Более того, нечитабельность текста сыграет на руку при оценке качества восприятия макета.

Самым известным «рыбным» текстом является знаменитый Lorem ipsum. Считается, что впервые его применили в книгопечатании еще в XVI веке. Своим появлением Lorem ipsum обязан древнеримскому философу Цицерону, ведь именно из его трактата «О пределах добра и зла» средневековый книгопечатник вырвал отдельные фразы и слова, получив текст-«рыбу», широко используемый и по сей день. Конечно, возникают некоторые вопросы, связанные с использованием Lorem ipsum на сайтах и проектах, ориентированных на кириллический контент – написание символов на латыни и на кириллице значительно различается.

И даже с языками, использующими латинский алфавит, могут возникнуть небольшие проблемы: в различных языках те или иные буквы встречаются с разной частотой, имеется разница в длине наиболее распространенных слов. Отсюда напрашивается вывод, что все же лучше использовать в качестве «рыбы» текст на том языке, который планируется использовать при запуске проекта. Сегодня существует несколько вариантов Lorem ipsum, кроме того, есть специальные генераторы, создающие собственные варианты текста на основе оригинального трактата, благодаря чему появляется возможность получить более длинный неповторяющийся набор слов.
-------------------------------------------------
Слово 'руку' найдено в следующих строках(абзацах)
Каждый веб-разработчик знает, что такое текст-«рыба». Текст этот, несмотря на название, не имеет никакого отношения к обитателям водоемов. Используется он веб-дизайнерами для вставки на интернет-страницы и демонстрации внешнего вида контента, просмотра шрифтов, абзацев, отступов и т.д. Так как цель применения такого текста исключительно демонстрационная, то и смысловую нагрузку ему нести совсем необязательно. Более того, нечитабельность текста сыграет на руку при оценке качества восприятия макета.

Process finished with exit code 0
0
RavenCrust
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 82
08.01.2017, 13:17  [ТС] 5
а как это программу написать через FileReader, BufferedReader, и поиск слова через метод indexOf

Добавлено через 13 часов 49 минут
написал намного проще,,,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.io.*;
    public class main {
        public static void main(String[] args) {
            try(BufferedReader br = new BufferedReader(new FileReader("D:\\example\\javaCoding.txt")))
            {
                String b;
                b = "hello";
                String s = new String();
                while((s=br.readLine())!=null){
                    if (s.indexOf(b)>=0)
                    System.out.println(s);
                }
            }
            catch(IOException ex){
 
                System.out.println(ex.getMessage());
            }
        }
    }
0
xoraxax
1640 / 1490 / 453
Регистрация: 05.07.2013
Сообщений: 7,341
Завершенные тесты: 2
08.01.2017, 13:28 6
Java
1
Files.lines(Paths.get(PATH)).filter(line->line.contains(WORD)).forEach(line -> System.out.println(line));
0
korvin_
2406 / 1883 / 341
Регистрация: 28.04.2012
Сообщений: 6,479
08.01.2017, 14:20 7
Java
1
.forEach(System.out::println);
0
08.01.2017, 14:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2017, 14:20

Получить слово, образованное первыми буквами каждой строки текстового файла
Имеется текстовый файл, в каждой строке которого первые два символа являются буквами. Получить...

Определить в каждой четной строке текстового файла слово наибольшей длины
Создать текстовый файл, ввод из клавиатуры. Определить в каждом парном ряду слово найбольшей длинны...

Скопировать содержимое текстового файла, удалив в каждой строке слово номер N
Здравствуйте! Помогите понять задание... Задание: Работа с файлами. Обработку символьной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru