![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Karta |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 4.6.2009 Репутация: нет Всего: 0 |
Добрый день.
Начала изучать джаву, что бы потренироваться , пытаюсь выполнить задание. Пытаюсь написать программу, которая будет принимать в качестве аргумента имя текстового файла, и выводить CSV файл с колонками. 1. Слово. 2. Частота. 3. Частота (в %). Разделителями считать все символы кроме букв и цифр. Вот у меня вопрос. В какой последовательности надо реализовать поставленную задачу. Мне кажется, что сначала нужно с помощью InputStreamReader прочесть файл, затем наверное использовать StringBuilder для построения слов. А как строить и распозновать слова в прочитанном тексте? Нужно создавать массивы букв, цыфр, знаков препинания и потом сравнивать каждый символ из текста с символом из массива и запоминать? Как последовательнос построить решения задачи? Заранее спасибо |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Для начала можно просто прочесть файл по строкам (их проще разбирать). Считаем, что файл не большой и все уникальные слова из него могут поместиться в памяти.
Пример ниже. И в самом конце комментарий про разбивку - там разбить считанную строку и наверно самое простое класть слова в Map. Вернее сначала ищем слово в Map где ключом является слово, а величиной является счетчик. По поводу параметра "частота" не совсем понятно как он вычисляется - видимо это количество этого слова во всем тексте. Значит сначала считаем все слова, а потом обработка - суммируем все счетчики и считаем процент.
|
|||
|
||||
| Karta |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 4.6.2009 Репутация: нет Всего: 0 |
Ой то, что надо, спасибо огромное
|
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Задачка стандартная. Ее сейчас много где задают для проверки знаний io и collection. В этом случае лучше использовать Scanner. Посмотрите мой пост в этой теме. Там, правда, я делал вывод в обычный текстовый файл и не подсчитывал частоты встречаемости, но идея та же, и, прошу заметить, использовал для решения всего 2 цикла!
-------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Karta |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 4.6.2009 Репутация: нет Всего: 0 |
Я в вашей работе практически ничего не поняла...
Спасибо, но я лучше длинно по простому, как сама додумаюсь. |
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Типа, лучшее враг хорошего? Я тут переделал свою прогу под Ваши нужды, правда, пришлось добавить еще 1 цикл для расчета в %. Напишу коменты и выложу в конце дня. ИМХО, лучше писать сразу хорошо, чем "по простому", хотя в первом случае и разбираться надо больше. -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Pawl |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Вот, как и обещал, выкладываю для Вас программку. Для ее реботы требуется библиотека guava-12.0. Скачать ее Вы сможете здесь. Программа состоит из 2-х классов и снабжена подробными комментариями. Если что, пишите
-------------------- В действительности всё совсем не так, как на самом деле |
||||
|
|||||
| Karta |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 4.6.2009 Репутация: нет Всего: 0 |
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |