试图从字符串中删除唯一的单词

时间:2014-03-18 11:47:51

标签: c#

我的代码认为需要删除同一个单词的唯一实例(完整单词)。

完整的词语是什么意思?好吧,给出以下字符串:

  

这是一个测试结束

我需要这个回复:

  

这是一个测试STRRING

我的代码返回:

  

这是测试字符串

            var items = sString.Split(' ');
            var uniqueItems = new HashSet<string>(items);
            foreach (var item in uniqueItems)
            {
                strBuilder.Append(item);
                strBuilder.Append(" ");
            }

           finalString =  strBuilder.ToString().TrimEnd();

因此,我如何在单词中保留重复字符的实例,但删除完整的重复单词entirley?

2 个答案:

答案 0 :(得分:3)

您需要SplitDistinct

var words = "THIIS IS IS A TEST STRRING".Split(' ').Distinct();

var result = string.Join(" ", words);

答案 1 :(得分:0)

兄。调用这个方法我知道它有点复杂和冗长但是在得到结果后你会感到惊讶!

public string IdentifySamewords(string str)
{
   string[] subs=null;
   char[] ch=str.ToCharArray();
   int count=0;
   for(int i=0;i<ch.Length;i++)
   {
     if(ch[i]==' ')
       count++;
   }
   count++;
   subs=new string[count];
   count=0;
   for(int i=0;i<ch.Length;i++)
   {
      if(ch[i]==' ')
       count++;
      else
       subs[count]+=ch[i].ToString();
   }
   string current=null,prev=null,res=null;
   for(int i=0;i<subs.Length;i++)
   {
      current=subs[i];
      if(current!=prev)
        res+=current+" ";

      prev=current;
   }
  return res;
}