Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 试图从字符串中删除唯一的单词_C# - Fatal编程技术网

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

C# 试图从字符串中删除唯一的单词,c#,C#,我的代码认为需要删除同一单词(完整单词)的唯一实例 我所说的完整单词是什么意思。那么,考虑到以下字符串: 这是一个测试 我需要退回这个: 这是一个测试 我的代码返回以下内容: 这是一个测试字符串 var items=sString.Split(“”); var uniqueItems=新哈希集(items); foreach(uniqueItems中的var项) { strBuilder.Append(项目); strBuilder.Append(“”); } finalString=strBu

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

我所说的完整单词是什么意思。那么,考虑到以下字符串:

这是一个测试

我需要退回这个:

这是一个测试

我的代码返回以下内容:

这是一个测试字符串

var items=sString.Split(“”);
var uniqueItems=新哈希集(items);
foreach(uniqueItems中的var项)
{
strBuilder.Append(项目);
strBuilder.Append(“”);
}
finalString=strBuilder.ToString().TrimEnd();

因此,如何在一个单词中保留一个重复字符的实例,但完全删除重复的单词?

您需要
Split
Distinct

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

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

您需要
Split
Distinct

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

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

您需要
Split
Distinct

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

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

您需要
Split
Distinct

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

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

兄弟,我知道这个方法有点复杂和冗长,但得到结果后你会惊讶的

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;
}
publicsstringidentificationsamewords(stringstr)
{
字符串[]subs=null;
char[]ch=str.ToCharArray();
整数计数=0;

对于(inti=0;ibro)调用此方法,我知道它有点复杂和冗长,但得到结果后您会感到惊讶

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;
}
publicsstringidentificationsamewords(stringstr)
{
字符串[]subs=null;
char[]ch=str.ToCharArray();
整数计数=0;

对于(inti=0;ibro)调用此方法,我知道它有点复杂和冗长,但得到结果后您会感到惊讶

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;
}
publicsstringidentificationsamewords(stringstr)
{
字符串[]subs=null;
char[]ch=str.ToCharArray();
整数计数=0;

对于(inti=0;ibro)调用此方法,我知道它有点复杂和冗长,但得到结果后您会感到惊讶

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;
}
publicsstringidentificationsamewords(stringstr)
{
字符串[]subs=null;
char[]ch=str.ToCharArray();
整数计数=0;


对于(int i=0;i)“Distinct方法返回一个不包含重复值的无序序列”@Joe它会改变元素顺序吗?不会。我不喜欢这种简单易读的方法,因为它会删除换行符和制表符(由于
Split()
而不是
Split(“”)
)而且它删除了多个连续空格(由于
string.Join
)。@TimSchmelter这是一个很好的观点。谢谢你的建议。我更新了我的answer@Joe:对于LINQ to对象,它是有保证的。它不会更改顺序。也就是说,MS不希望提供绑定保证。“Distinct方法返回不包含重复值的无序序列”@Joe它会改变元素顺序吗?不会。我不喜欢这种简单易读的方法,因为它会删除换行符和制表符(由于
Split()
而不是
Split(“”)
),并且它会删除多个连续的空格(由于
string.Join
)@TimSchmelter这是一个很好的观点。谢谢你的建议。我更新了我的answer@Joe:对于LINQ to对象,它是有保证的。它不会更改顺序。也就是说,MS不希望提供绑定保证。“Distinct方法返回不包含重复值的无序序列“@Joe它会改变元素顺序吗?不会。我不喜欢这种简单易读的方法,因为它会删除换行符和制表符(由于
Split()
而不是
Split(“”)
),而且它会删除多个连续空格(由于
string.Join
)@TimSchmelter这是一个很好的观点。谢谢你的建议。我更新了我的answer@Joe:对于LINQ to对象,它是有保证的。它不会更改顺序。也就是说,MS不希望提供绑定保证。“Distinct方法返回不包含重复值的无序序列”@Joe它会改变元素顺序吗?不会。我不喜欢这种简单易读的方法,因为它会删除换行符和制表符(因为
Split()
而不是
Split(“”)
),而且它会删除多个连续空格(因为
string.Join
)@TimSchmelter这是一个很好的观点。谢谢你的建议。我更新了我的answer@Joe:对于LINQ to对象,它是有保证的。它不会改变顺序。也就是说,MS不想给出绑定保证。不,我传入了一个包含单词Brothers的字符串两次,它返回了我输入的同一个字符串。我想知道你是如何使用它的。我传入了ame输入,其中你得到相同的结果,但我不是。当我传递它两次时,它只返回兄弟!:ONope,我传递了一个包含单词Brothers的字符串,两次,它返回相同的字符串。我想知道你是如何使用它的。我传递了相同的输入,其中你得到相同的结果,但我不是。它返回o当我传递它两次时,只有兄弟!:ONope,我传递一个包含单词Brothers的字符串,两次,它返回相同的字符串我输入我想知道你是如何使用它的我传递了相同的输入,在其中你得到相同的结果,但我不是。当我传递它两次时,它只返回兄弟!:ONope,我传递一个包含t的字符串“兄弟”两次,它返回相同的字符串我想知道你是如何使用它的我传递了相同的输入,在其中你得到相同的结果,但我不是,当我传递它两次时,它只返回兄弟!:O