Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задача со строками (https://javascript.ru/forum/misc/30923-zadacha-so-strokami.html)

Alexxiss 20.08.2012 20:23

Задача со строками
 
Здравствуйте! Подскажите как реализировать вот такую задачку: Подсчитать количество слов во введенном строке, найти длину максимального слова, минимального слова и среднюю длину слов. Предусмотреть возможность присутствия в тексте нескольких пробелов и знаков препинания.

Заранее спасибо!

Deff 20.08.2012 20:27

Alexxiss,
Выложите все используемые знаки препинания и пример строки
Заранее спасибо!

Alexxiss 20.08.2012 20:33

Цитата:

Сообщение от Deff (Сообщение 199162)
Alexxiss,
Выложите все используемые знаки препинания и пример строки
Заранее спасибо!

, . - и пробел

Deff 20.08.2012 20:50

Цитата:

Сообщение от Alexxiss
, . - и пробел

Alexxiss,
:) Восклицала и знака Вопроса - нет ?

Alexxiss 20.08.2012 20:55

есть. Извините забыл указать))

oneguy 20.08.2012 20:57

Вот, написал своё решение. Если нужно, можно подправить регулярку.
function wordInfo(str) {
  var reg=/[а-яё]+/gi, info={
    count: 0,
    min: Infinity,
    max: 0
  }, sum=0, word, len;
  while (word=reg.exec(str)) {
    info.count++;
    len=word[0].length;
    sum+=len;
    if (len<info.min)
      info.min=len;
    if (len>info.max)
      info.max=len;
  }
  info.average=sum/info.count;
  return info;
}
//тест
alert(JSON.stringify(wordInfo("Здравствуйте! Подскажите как реализировать вот такую задачку: Подсчитать количество слов во введенном строке, найти длину максимального слова, минимального слова и среднюю длину слов. Предусмотреть возможность присутствия в тексте нескольких пробелов и знаков препинания.\n\
\n\
Заранее спасибо!")));

nerv_ 20.08.2012 21:47

Мы это уже проходили :) Здесь

Кстати,
Цитата:

Сообщение от oneguy
info.min=Math.min(info.min, len);
info.max=Math.max(info.max, len);

if ( info.min > len ) info.min = len;
if ( info.max < len ) info.max = len;

не?

melky 20.08.2012 21:51

Цитата:

Сообщение от nerv_
Мы это уже проходили Здесь

таки да.

мой вариант решения.
http://javascript.ru/forum/166182-post126.html
весь вывод скрипта уходит в консоль. так что включите её.

среднюю длину слов допилить легко.

oneguy 20.08.2012 22:07

Цитата:

Сообщение от nerv_ (Сообщение 199181)
Кстати,
if ( info.min > len ) info.min = len;
if ( info.max < len ) info.max = len;

не?

Да, спасибо, так, наверно, лучше. Исправил.

Alexxiss 20.08.2012 22:16

Спасибо всем за помощь!)


Часовой пояс GMT +3, время: 22:30.