Outlawif Опубликовано 14 апреля, 2020 Опубликовано 14 апреля, 2020 Ой не, циклы то стьюдент-стайл ) Регэкспой слова выдрать, отмапить чем-нибудь на уникальность, там от языка зависит чем. В питоне это например будет выглядеть так: len(set(re.findall(r'\w+', text, re.UNICODE)))
MaJ0r Опубликовано 14 апреля, 2020 Опубликовано 14 апреля, 2020 так и не понял что такое уникальность, это слова которые не повторяются ,или повторяющиеся тоже влючены, только если 2 и больше вхождений, то считается как одно уникальное слово? len(set(re.findall(r'\w+', text, re.UNICODE))) 0utlaw, да, пайтон милый конечно, одной строкой, в джаве там пришлось бы писать более десятка строк кода
Голодный котег Опубликовано 14 апреля, 2020 Опубликовано 14 апреля, 2020 кладешь в ту же папку файл с текстом и в консоли выполняешь WordCount.exe имя_файла 0utlaw, "WordCount.exe" не является внутренней или внешней командой, исполняемой программой или пакетным файлом :(
Jus Опубликовано 14 апреля, 2020 Опубликовано 14 апреля, 2020 не является внутренней или внешней командой, исполняемой программой или пакетным файлом скорее даже так
Outlawif Опубликовано 14 апреля, 2020 Опубликовано 14 апреля, 2020 не является внутренней или внешней Что-то неправильно делаешь, такое сообщение означает, что ты запускаешь команду не в той папке где файл лежит. в джаве там пришлось бы писать более десятка строк кода И в джаве, и в сишарпе - обойдусь в одну. Вот так это выглядит в сишарпе: Regex.Matches(text, "\\w+").Select(x => x.Value).Distinct().Count(); На самом деле в моей мега-апликухе 3 строчки кода. Одна вычитывает из файла, та что выше - считает вхождения, третья выводит в консоль. На самом деле их все 3 можно записать в одну, просто будет плохо читабельно ) В джаве не буду гуглить синтаксис ) Но уверен что нагуглю за пару минут если захочу. скорее даже так Там прямо в консоли написано, где взять последнюю версию дотнета. Я разумеется на последней пишу, которая осенью релизнулась. Хз когда она в обновы винды попала, но в последних точно должна быть. Можно дистрибутив сделать, чтобы сам обновлял, но вдруг оно кому не надо, да и дольше это, чем код писать...
andreyyy Опубликовано 15 апреля, 2020 Опубликовано 15 апреля, 2020 если слово совпадает то увеличиваешь каунтер, потом можно отнять повторяющиеся слова и получить кол-во не повторяющихся Вообще не понял ход твоих мыслей Что значит считать повторяющиеся ? Все в кучу ? не важно, какое слово сколько раз, на выходе имеешь одно число ? И что даст отнимание общего числа от этого ? И самое главно, зачем считать повторяющиеся ? Почему не считать сразу неповторящиеся - вот в чем вопрос. Если уникально - увеличиаем на единицу каунтер. Никаки отниманий. Ну или в табличку загнать, селектом выбрать количесвто уникальных записей. ДРуое дело, что сразу мысль, что за данные. Может там pdf какой ли ворд с картинками там, таблицами, прочим не-текстом. Тогда одна команда перегона в строку заменяется на парсинг в зависимости от того, с чем работаем
Jus Опубликовано 15 апреля, 2020 Опубликовано 15 апреля, 2020 Там прямо в консоли написано, где взять последнюю версию дотнета не, мне слова считать без надобности, я прост Котегу показал, что работает, а то, шо библиотек не хватает - то уже кому надо, тот скачает я)
MaJ0r Опубликовано 15 апреля, 2020 Опубликовано 15 апреля, 2020 Вообще не понял ход твоих мыслей andreyyy, я ж говорю, программирование не мое, логика не работает. Если можно сразу считать уникальные слова, не повторяющиеся - это проще гораздо
Outlawif Опубликовано 15 апреля, 2020 Опубликовано 15 апреля, 2020 это проще гораздо Пока дело не дойдет до оптимизации, и какому-нибудь куэю не придет в голову посчитать уникальные слова в Википедии )) Тогда придется делать потоковый алгоритм, хэширование результата и... и вообще дофига можно придумать усложнений для любой простой задачи ))
andreyyy Опубликовано 15 апреля, 2020 Опубликовано 15 апреля, 2020 . Если можно сразу считать уникальные слова, не повторяющиеся - это проще гораздо так это... если допустим нельзя считать неповторяющиеся, то как ты тогда хотел считать повторяющиеся? Ну чтоб тебе понять, что оно повторяющееся, нужно же сначала проверить, имеется ли уже такое слово каком-то хранилище (у тебя в примере массив). Правильно ? Ну и.. true или false либо есть, либо нет. Вот как ты считал бы повторяющиеся, так бы и неповторяющиеся И что значит проще ? Я вообще не понял, как ты решил задачу (пусть и в голове и не на языке программирования, а логически) Ты сваливаешь в одну кучу все повторяющиеся, получаешь на выходе одно число. Что оно может дать ? Как его можно использовать ? ты же не знаешь, какое сколько раз повторялось. Что даст вычитание общего числа от этого ? Там же в той куче по одному разу лежат те, которых ты лишил множество искомых неповторяющихся. Я вообще не понял, как ты решил короче
Рекомендуемые сообщения
Создайте учетную запись или войдите, чтобы комментировать
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти