string origin="新华/网/南京/7月/29日/电/记者/王/骏/勇/南京市/7月/24日/发生/一起/绑架/勒索/案/几/名/犯罪嫌疑人/绑架/一/名/富商/的/儿子/向/其/家人/勒索/3000万/元/结果/双方/以/500万/元/成交/27日/南京/警方/在/接到/报案/后/雷霆/出击/快速/破获/此案/9/小时/内/将/主要/犯罪嫌疑人/郭/某/等/4/人/抓获/"
string[] Term = origin.Split('/');//Term数组为分次后的词语数组,未去重,最后一位为空。
for (int i = 0; i < Term.Length; i++)
{
for (int j = 0; j < Term.Length; j++)
{
//restart:
if (Term[i] == Term[j])
if (i <= j)
{
Term[i] = Term[i];
break;
}
else
{
if(i!=Term.Length-1)
Term[i] = Term[i + 1];//?????这里不对,未能去重,南京就没有去掉,待看!!!
//goto restart;
continue;
}
}
}=======================================================================
我这样做的目的是想把分次后的那些词语去重,那个for循环想起个过滤作用。
基本思想是:如果一个词第一次出现,那就覆盖原来的数组,如果这个词在之前就已经出现过了,那就把它后面的词语往前移动一位,来覆盖。这样之后再来判断这个词语是否已经出现过了,如果有,那么就再做类似的递归操作(就是那个continue,即再次判断这个替换过的词是否在之前已经出现过了。如果没有,那就进行下一个词的判断。
但我的结果有问题,有的可以去掉,比如“7月”,有的就不能去,比如“南京”。
========================================================================
我觉得很奇怪,麻烦大家帮我看看是什么情况,谢谢!~~
解决方案 »
- 查询两个表中日期最大的那个表中的数据
- asp.net中事务(transactions)的作用是什么?
- 高分请教,如何结束线程。(从主线程中结束一个线程),问题解决马上给分。
- DOTNET三层框架
- [在线等]如何枚举出某个服务器上所有的Sql数据库
- 求助:为什么不能正常获取桌面路径??
- system.windows.forms.message 问题!!!!欢迎讨论
- 在Tree view中怎样高亮 单击的结点(急!!在线等啊!!!!)
- 哪位老兄能给俺一个beta2的CD-KEY,如果俺得了小车先让老兄玩:)
- QQ空间WEB登录加密方式是怎样的?
- 下载一个C#系统程序怎么能把系统和数据库链接到一起呢?
- 有没有采集ccd 摄象机的控件或源?
/// 方法名:DelArraySame
/// 功能: 删除数组中重复的元素
/// </summary>
/// <param name="TempArray">所要检查删除的数组</param>
/// <returns>返回数组</returns>
public string[] DelArraySame(string[] TempArray)
{
ArrayList nStr = new ArrayList();
for (int i = 0; i < TempArray.Length; i++)
{
if (!nStr.Contains(TempArray[i]))
{
nStr.Add(TempArray[i]);
}
}
string[] newStr = (string[])nStr.ToArray(typeof(string));
return newStr;
}
#endregion