Извлечь определенные символы из строки и просуммировать их. - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Есть строки 2010-06-25 05:13:52 10.4.4.101 POST /SPACE1/ISwitchMemberCtxSvcFacade.rem - 80 - 10.4.4.63 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+5.1.2600.196608;+MS+.NET+Remoting;+MS+.NET+CLR+2.0.50727.3607+) 401 2 5 171 2010-06-25 05:13:52 10.4.4.101 POST /SPACE1/IServerApplicationsAgent.rem - 80 - 10.4.4.63 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+5.1.2600.196608;+MS+.NET+Remoting;+MS+.NET+CLR+2.0.50727.3607+) 401 2 5 15 2010-06-25 05:59:57 10.4.4.103 POST /SPACE1/ISwitchMemberCtxSvcFacade.rem - 80 - 10.4.4.156 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+5.1.2600.196608;+MS+.NET+Remoting;+MS+.NET+CLR+2.0.50727.3607+) 401 2 5 140 2010-06-25 05:59:57 10.4.4.103 POST /SPACE1/IServerApplicationsAgent.rem - 80 - 10.4.4.156 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+5.1.2600.196608;+MS+.NET+Remoting;+MS+.NET+CLR+2.0.50727.3607+) 401 2 5 31 нужно посчитать количество одинаковых ip и вывести их в отдельные переменные. При всем этом мы не знаем какие ip могут быть.. Помогите пожалуйста! очень нужно как можно быстрее! Спасибо огромное.

Решение задачи: «Извлечь определенные символы из строки и просуммировать их.»

textual
Листинг программы
string[] data = {
    "2010-06-25 05:13:52 10.4.4.101 POST /SPACE1/ISwitchMemberCtxSvcFacade.rem - 80 - 10.4.4.63 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+5.1.2600.196608 ;+MS+.NET+Remoting;+MS+.NET+CLR+2.0.50727.3607+) 401 2 5 171",
    "2010-06-25 05:13:52 10.4.4.101 POST /SPACE1/IServerApplicationsAgent.rem - 80 - 10.4.4.63 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+5.1.2600.196608 ;+MS+.NET+Remoting;+MS+.NET+CLR+2.0.50727.3607+) 401 2 5 15",
    "2010-06-25 05:59:57 10.4.4.103 POST /SPACE1/ISwitchMemberCtxSvcFacade.rem - 80 - 10.4.4.156 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+5.1.2600.196608 ;+MS+.NET+Remoting;+MS+.NET+CLR+2.0.50727.3607+) 401 2 5 140",
    "2010-06-25 05:59:57 10.4.4.103 POST /SPACE1/IServerApplicationsAgent.rem - 80 - 10.4.4.156 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+5.1.2600.196608 ;+MS+.NET+Remoting;+MS+.NET+CLR+2.0.50727.3607+) 401 2 5 31"
                 };
Dictionary<string, int> ips = new Dictionary<string, int>();
foreach (string line in data)
{
    string key = line.Split(' ')[2];
    if ( ips.ContainsKey(key) )
        ips[key]++;
    else
        ips[key] = 1;
}
 
 
 
foreach (KeyValuePair<string, int> ip in ips)
{
    Console.WriteLine("IP {0}; Count = {1};", ip.Key, ip.Value);
}
Console.ReadLine();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы