读书人

怎么查找多条信息中是否匹配已有的项

发布时间: 2012-04-11 17:42:33 作者: rapoo

如何查找多条信息中是否匹配已有的项
System.IO.StreamReader my = new System.IO.StreamReader(Server.MapPath(@"IP.txt"), System.Text.Encoding.Default);
string line;
int i = 0,
soso = 0,
baidu = 0,
sogou = 0,
youdao = 0,
yahoo = 0;
while ((line = my.ReadLine()) != null)
{
i++;
if (line.Contains("Sosospider"))
{
soso++;
}
if (line.Contains("Baiduspider"))
{
baidu++;
}
if (line.Contains("Sogou"))
{
sogou++;
}
if (line.Contains("YoudaoBot"))
{
youdao++;
}
if (line.Contains("Yahoo! Slurp"))
{
yahoo++;
}

Response.Write(line + "<br />");

}

-------------------------------

我是用一个集合存放Sosospider, Sogou等这些关键字,然后读一行数据就循环和集合中的关键字对比,匹配的话该累计值+1。不知这类算法如何优化,请教下大家。或者您对这个需求有什么建议,我洗耳恭听,谢谢。

[解决办法]
用两个ArrayList,一个存关键字,一个存统计数。

C# code
 while ((line = my.ReadLine()) != null)            {                i++;                for (int d = 0; d < keyword.Count; d++)                {                    if (line.Contains(keyword[d].ToString().Trim()))                    {                        int kc = Convert.ToInt16(keycounter[d]);                        keycounter[d] = (kc + 1).ToString().Trim();                    }                }                Response.Write(line + "<br />");            }
[解决办法]
i*j在很多情况下是远大于i+j的

读书人网 >云计算

热点推荐