Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Лексическая статистика
|
|||
|---|---|---|---|
|
#18+
Есть текст: Label1.Text = "Саша Маша каша Саша Саша каша"; Как получить о нем отчёт в таком виде: Слова | Количество ---------------------------- каша | 2 Саша | 3 Маша | 1? Мой вопрос связан с тем, что нет ясности как в конструкции for(){} "уменьшить "на лету" размер массива, если какое-то слово-элемент массива повторяется? Надо ж его удалять, чтобы не прокручивать снова. Вот мой код: private string CountStrings(string str) { StringCollection myCol = new StringCollection(); string count = ""; string[] searchString = str.Split(new char[] { ' ' }); myCol.AddRange(searchString); for (int i = 0; i < myCol.Count; i++) { if (myCol.Length > 2) { count += myCol + ": " + new Regex(myCol).Matches(str).Count + "<br />"; } } return count; } Хотя Regex подсчитывает правильно, цикл прокручивает всЁ, т.к. он не менялся после создания. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 17:48 |
|
||
|
Лексическая статистика
|
|||
|---|---|---|---|
|
#18+
Hashtable вполне справится. Или, лучше, Dictionary<string, int> Dictionary<string, int> words = new Dictionary<string, int>(); foreach(string word in str.Split(' ')) if(words.ContainsKey(word)) words[word]++; else words.Add(word, 1); Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 02:17 |
|
||
|
Лексическая статистика
|
|||
|---|---|---|---|
|
#18+
Спасибо, работает. Только мешает, что надо в конце делать ещё один прогон цикла типа: foreach (KeyValuePair<string, int> kv in words) { count += kv.Key + " - " + kv.Value + "<br />"; } А хотелось бы избежать, и вычислить за раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 08:52 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=819&tid=1387166]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
48ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 419ms |

| 0 / 0 |
