![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| dailapu |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.1.2008 Репутация: нет Всего: нет |
Нужно: написать метод, где он принимал бы строку и возвращал(изменённую) строку.
Казалось бы какие проблемы!? Но. Дело в том что нужно: 1)заменить не только одно слово но (елка=ёлка...), 2) но и ряд слов на ряд слов(все человеческое=всё человеческое...) 3) все эти слова должны быть считаны из текстового файла словаря(если их прописывать в проге в массиве, то а- слишком большой вес,б- невозможность доболять/удалять новые слова) Я то решил эту проблему следующим образом: Мы считываем первый фаил(одиночных слов)->дальше рубим(Split)на массив где содержимое ячейки занимает(автощетку=автощЁтку) )->дальше в цикле опять рубим по ячейки(ещё два массива) в результате чего получается четная это индекс(в пер.мас.), а нечетная значение(во втор.мас.). И уже потом ищем и заменяем... Тоже самое проделываем(счит. Фаил. рубим, рубим...) и со вторым словарем((( //------------------------------------------------------------ Код получается рабочим, хотя довольно и большим(около 200 строк) И я бы сделал его если бы смог вспомнить как работать с “Properties” и тому подобной шнягой в виде связных списков. ПЛИЗИ, ГОСПОДА ХОРОШИЕ. КАК вы можете продемонстрировать какой-нибудь пример какого-нибудь списка, где было бы понятно, как обращаться(изымать,добавлять(по отдельности)) к и индексу и значению у какого-нибудь Properties? И ещё просьба если напишете, перебирате пожалуйста for’ом, а не while итераторы..прывычка))) Зы Понимаю что вопрос идиотский но в книге об этом слишком мало сказано, пришлось искать обходные пути)))
/// СЛОВАРЬ bukva-E.txt автоподъёмнике = автоподъёмнике& автоподъёмники = автоподъёмники& автоподъёмников = автоподъёмников& автоподъёмником = автоподъёмником& Сема = Сёма& ежик = ёжик& ежика = ёжика& лежа = лёжа& автощетку = автощётку& автощеток = автощёток& аистенка = аистёнка& аистенке = аистёнке& аистенком = аистёнком& аистенку = аистёнку& |
|||
|
||||
| ecologist |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 2 Всего: 9 |
|
|||
|
||||
| w38 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.12.2006 Где: Украина, Одесса Репутация: нет Всего: нет |
а амперсанды зачем? переноса строки не достаточно для опознания конца слова ?
Properties это хорошо, но если задача учебная, то советую познакомиться с java.util.HashMap<String, String> |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Я так понимаю, что ecologist, подсказал использовать класс Properties с целю избавиться от ручного парсинга файла. С HashMap телодвижений придется для этого больше сделать. |
|||
|
||||
| dailapu |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.1.2008 Репутация: нет Всего: нет |
w38 У меня с этим делом постоянно какая-то проблема, просто заметил что есть разница между:
Прочитать фаил с ж.диска-изъять из текстового окна- или из переменной, к тому же в разных операционках разные \n или \r\n така будет лучше))) Нашел литературу по этим спискам, НО, выяснилась следующая щняга: Есть там такой метод кажется store(); он сохраняет данные на диск. И здеь фся закавыка, не Propirties не подобные вещи не работают с кириллицей(не работает когда используете чтение -запись) В лучшем случаи выдадут уникод, в худшем знак вопроса. Тута до другой вещи додумался, прямо за нобелевской премией лететь надо.На черта здесь вообще нужны эти забугорошные«словари»? Куда проще сделать следующие запихнуть всё в один массив, где каждая вторая ячейка будет в себе содержать «значение» ,а преведущая ячейкаи «индекс». При обходе просто запрашивать каждый вторую ячейку массива))) И вот ещё что, здесь вопрос стал о скорострельности джавы))) Кажется пока что единственным возможным остается следующий подход в деле обработке словарей(касаемо проверки не более одного слова): 1Мы рубим весь текст на массив слов(сплитом или токинезером) 2дальше создаем новый массив из преведушего, с тем лишь отличием ,что в нём сохраняются только уникальные слова, 3 После начинаем искать двоичным поиском.(причём мы ищем слова из текста в словаре, а не слова из словаря в тесте) Или можно придумать что-то получще!? Зы Всё не могу, надо новый топик создавать по обработке строк))) Это сообщение отредактировал(а) dailapu - 8.11.2008, 11:04 |
|||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
Вот так, к примеру можно прочитать Properties на русском языке:
|
|||
|
||||
![]()
|
| Правила форума "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. |