我现在有一个字符串,保存在cookie,想做一个用户关键字挖掘。
var str="|明星_8|军事_4|视频_3|";
|明星_8|的含义是 明星这个关键被用户检索了8次。
加入用户搜索的关键字是“军事”,那么我就要把字符串“|明星_8|军事_4|视频_3|”改为“|明星_8|军事_5|视频_3|”
即刷新下军事的搜索次数。
请问如何来弄呢? 最好能排序下.比如“军事”这个关键字次数达到9次。|军事_9|明星_8|视频_3|
重新按检索次数排序。
var str="|明星_8|军事_4|视频_3|";
|明星_8|的含义是 明星这个关键被用户检索了8次。
加入用户搜索的关键字是“军事”,那么我就要把字符串“|明星_8|军事_4|视频_3|”改为“|明星_8|军事_5|视频_3|”
即刷新下军事的搜索次数。
请问如何来弄呢? 最好能排序下.比如“军事”这个关键字次数达到9次。|军事_9|明星_8|视频_3|
重新按检索次数排序。
解决方案 »
- html生成word,怎么控制行间距
- access数据库查询问题
- ASP.NET 导航控件为什么显示不出来???
- 怎么根据相关数据生成河渠横截面效果图?关键是水位的控制。
- 相对地址与相同目录地址,麻烦的问题~!!!!!!从来没见过这种问题~!!!!!
- 我想用.net做个简单的顶贴软件问点问题
- 点击一个图标怎样使一个有内容的表格申缩,
- DATAGRID删除提示只有最后一个没有提示,其他一切正常这是为什么?附代码
- 花了3年写的书的前言,大家给点意见(我用人格保证非垃圾书)
- 怎么设置TreeView根节点的背景颜色
- .Net DataList取行数的问题
- Asp.net MVC3 评论显示用户名的问题。
因为这个cookie有可能有很多关键字。上百个也有可能。 这是个辅助功能。所以需要效率很高。
private void button1_Click(object sender, EventArgs e)
{
str = str.TrimEnd('|').TrimStart('|');//去除左右|
List<string[]> list_str = new List<string[]>();
foreach (string item in str.Split('|'))
{
string[] temp_str = new string[2];
temp_str[0] = item.Split('_')[0];
temp_str[1] = item.Split('_')[1];
list_str.Add(temp_str);
}
list_str = list_str.Select(a => { if (a[0].Equals("军事")) { a[1] = (int.Parse(a[1]) + 1).ToString(); return a; } else return a; }).OrderByDescending(a => a[1]).ToList();
str = string.Join("|", list_str.Select(a => { return string.Join("_", a); }));
//每次点击都会+1(如果是军事,可以自己传值)
//输出 明星_8|军事_5|视频_3
}
str = string.Join("|", list_str.Select(a => { return string.Join("_", a); }));
//每次点击都会+1(如果是军事,可以自己传值)
//超过次数时,排序到前面
//输出 str "军事_9|明星_8|视频_3"
string keyworld = "军事";
string result = Regex.Replace(str, "(?<=" + keyworld + "_)[^|]+", delegate(Match m) { return (Convert.ToInt32(m.Value) + 1).ToString(); });
Console.WriteLine(result);
//|明星_8|军事_5|视频_3|