C#从字符串中删除重复的单词的两种方法
作者:admin 时间:2023-5-1 1:20:8 浏览:本文介绍C#从字符串中删除重复的单词的两种方法,一种是使用for
循环,一种是使用Linq
,而后者更简单,代码更少。
1、使用for从字符串中删除重复的单词
C#代码
string SetenceString = "red white black white green yellow red red black white";
string[] data = SetenceString.Split(' ');
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
string temp = " ";
if (i == 0)
{
temp = data[i].ToString();
sb = sb.Append(temp + " ");
}
else
{
for (int j = 1; j < data.Length; j++)
{
string temp2 = data[j].ToString();
string strnew = sb.ToString();
string[] Kdata = strnew.Split(' ');
bool isnoduplicate = false;
for (int k = 0; k < Kdata.Length; k++)
{
string temp3 = Kdata[k].ToString();
if (temp3 != "")
{
if (temp2 == temp3)
{
isnoduplicate = false;
break;
}
else
{
isnoduplicate = true;
}
}
}
if (isnoduplicate)
{
sb = sb.Append(temp2 + " ");
}
}
}
}
Console.WriteLine(sb);
Console.ReadKey();
输出
red white black green yellow
2、使用Linq从字符串中删除重复的单词
确保你的 .NET 版本4.0以上。
程序先添加System.Linq
命名空间。
using System.Linq;
C#代码
string str = "One Two Three One";
string[] arr = str.Split(' ');
Console.WriteLine(str);
var a = from k in arr
orderby k
select k;
Console.WriteLine("After removing duplicate words...");
foreach(string res in a.Distinct())
{
Console.Write(" " + res);
}
输出
One Two Three
System.Linq 命名空间
提供支持某些查询的类和接口,这些查询使用语言集成查询 (LINQ)。
命名空间 System.Linq
位于 System.Core.dll
的 System.Core
程序集中。
类 Enumerable
包含 LINQ
标准查询运算符,这些运算符对实现 IEnumerable<T>
的对象进行操作。
类 Queryable
包含 LINQ
标准查询运算符,这些运算符对实现 IQueryable<T>
的对象进行操作。
C#计算字符串中的重复字数
C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CountRepeatedWordCount
{
class Program
{
static void Main(string[] args)
{
string Word;
Console.WriteLine("Enter the word!..");
Word = Console.ReadLine(); // 在运行时读取输入的字符串
var Value = Word.Split(' '); // 分割字符串并存储在一个变量中
Dictionary<string, int> RepeatedWordCount = new Dictionary<string, int>();
for (int i = 0; i < Value.Length; i++) //循环已经分割的字符串
{
if (RepeatedWordCount.ContainsKey(Value[i])) // 检查单词是否存在,更新总数
{
int value = RepeatedWordCount[Value[i]];
RepeatedWordCount[Value[i]] = value + 1;
}
else
{
RepeatedWordCount.Add(Value[i], 1); // 如果字符串重复就不加入字典里,这里是加进去
}
}
Console.WriteLine();
Console.WriteLine("------------------------------------");
Console.WriteLine("Repeated words and counts");
foreach (KeyValuePair<string, int> kvp in RepeatedWordCount)
{
Console.WriteLine(kvp.Key + " Counts are " + kvp.Value); // 打印重复的单词及其总数
}
Console.ReadKey();
}
}
}
步骤 1
复制代码并将其粘贴到 C# 控制台应用程序。
注意
根据你的应用程序名称,创建具有相同名称CountRepeatedWordCount
的应用程序或更改复制的代码。
步骤 2
保存并运行应用程序。
现在,你可以输入字符串并查看输出。
总结
本文介绍了C#从字符串中删除重复的单词的两种方法,一种是使用for
循环,一种是使用Linq
,而后者更简单,代码更少。
相关文章
- 站长推荐