Как посчитать число слов в строке?
Дано натуральное число n и последовательность символов S1. Sn. Группы символов, разделены одним или несколькими пробелами, будем называть словами. Подсчитать кол-во слов в данной строке.
Отслеживать
13.8k 12 12 золотых знаков 44 44 серебряных знака 77 77 бронзовых знаков
задан 16 дек 2015 в 5:29
19 1 1 бронзовый знак
Для получения полезного ответа поясните, в чем именно вы видите проблему
16 дек 2015 в 5:36
Формат сайта не предполагает, что за вас будут полностью решать задачу. Предлагаю вам делать это самостоятельно и задавать вопросы по конкретным затруднениям и ошибкам.
16 дек 2015 в 10:48
Если вам дан исчерпывающий ответ, отметьте его как верный (галка напротив выбранного ответа).
17 дек 2015 в 11:56
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Идея простая, число слов равно числе пробелов между словами + 1. Вам надо учесть смежные пробелы и на них не реагировать.
Примерный алгоритм, детали и реализацию сделаете сами:
- Идете в цикле по строке, смотрите каждый символ
- Храните предыдущий символ (в начале он пустой)
- Если увидели пробел и прошлый символ НЕ пробел — увеличили счетчик слов
- Запоминаете прошлый символ
- Дошли до конца — если в конце пробел, то выходите, если символ — увеличиваете счетчик еще на 1.
Как посчитать количество слов в строке?
Мне нужно подсчитать количество слов, и я предполагаю правильный способ сделать это, вычислив количество раз, когда предыдущий символ в строке не является буквой (то есть другими символами), потому что это должно предполагать, что в строке будут двоеточия, пробелы, вкладки и другие знаки. Поэтому сначала моя идея состояла в том, чтобы прокрутить каждый символ и подсчитать, сколько раз вы не получите букву алфавита
for(int i = 0; i < string.length(); i++) < for(int j = 0; i < alphabets.length(); j++) < if (string.charAt(i-1) == alphabets.charAt(j)) < counter++; >> >
Однако из-за этого я всегда получаю массив из-за пределов. Итак, мне нужна небольшая помощь или другой способ, который действительно может быть более эффективным. Я думал использовать Matches только для [a-zA-z], но я не уверен, как обрабатывать char, чтобы быть сопоставимым со строкой при подсчете, сколько раз это происходит. Спасибо
nfnmy 20 май 2012, в 06:12
Поделиться
Там только одно слово в Java.
Dave Newton 20 май 2012, в 04:14
Как посчитать число слов в строке?
Дано натуральное число n и последовательность символов S1. Sn. Группы символов, разделены одним или несколькими пробелами, будем называть словами. Подсчитать кол-во слов в данной строке.
Отслеживать
13.8k 12 12 золотых знаков 44 44 серебряных знака 77 77 бронзовых знаков
задан 16 дек 2015 в 5:29
19 1 1 бронзовый знак
Для получения полезного ответа поясните, в чем именно вы видите проблему
16 дек 2015 в 5:36
Формат сайта не предполагает, что за вас будут полностью решать задачу. Предлагаю вам делать это самостоятельно и задавать вопросы по конкретным затруднениям и ошибкам.
16 дек 2015 в 10:48
Если вам дан исчерпывающий ответ, отметьте его как верный (галка напротив выбранного ответа).
17 дек 2015 в 11:56
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Идея простая, число слов равно числе пробелов между словами + 1. Вам надо учесть смежные пробелы и на них не реагировать.
Примерный алгоритм, детали и реализацию сделаете сами:
- Идете в цикле по строке, смотрите каждый символ
- Храните предыдущий символ (в начале он пустой)
- Если увидели пробел и прошлый символ НЕ пробел — увеличили счетчик слов
- Запоминаете прошлый символ
- Дошли до конца — если в конце пробел, то выходите, если символ — увеличиваете счетчик еще на 1.
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode
Как подсчитать количество слов в тексте С#
Сегодня мы узнаем самый простой и примитивный способ подсчета количества слов в тексте с помощью C#. Данный вариант состоит всего из нескольких строк и прост в реализации.
Итак, создадим программу, в которой пользователь будет вводить в консоль текст, а программа будет в ответ писать количество слов в нём.
Весь код состоит всего из нескольких строк:
Console . WriteLine ( «Введите текст:» ) ;
string [ ] textMass ;
string text = Console . ReadLine ( ) ;
textMass = text . Split ( ‘ ‘ ) ;
Console . WriteLine ( «Количество слов:» ) ;
Console . WriteLine ( textMass . Length ) ;
Console . ReadLine ( ) ;
Как видно из представленной реализации, мы создаем массив строк textMass и простую строковую переменную text. В переменную text считывается введенный пользователем текст (строка 3), а в массив textMass добавляются элементы из строки text, расчлененные пробелом при помощи метода Split (строка 4). Иными словами, каждый элемент данного массива — это как раз одно слово, заключенное в тексте между пробелов.
Например, если в консоли будет написано «Мама мыла раму», то элементы массива будут следующими: textMass[0] = «Мама», textMass[1] = «мыла», textMass[2] = «раму».
Дальше программа просто выведет на консоль количество элементов данного массива (6 строка) — это и будет количество наших слов.
Примечание: если в тексте встречаются знаки препинания, то они будут помещены в массив вместе с предшествующим им словом. Однако условлено, что после знаков препинания должен стоят пробел, поэтому на качество подсчета слов это никак не повлияет.

Скачать исходник данной программы: