C# 如何使用asp c计算字符串中的2或3个字母单词
如何使用asp csharp计算字符串中的2或3个字母单词,例如C# 如何使用asp c计算字符串中的2或3个字母单词,c#,asp.net,C#,Asp.net,如何使用asp csharp计算字符串中的2或3个字母单词,例如 string value="This is my string value"; 输出应该是这样的 2 letter words = 2 3 letter words = 0 4 letter words = 1 请帮助,提前谢谢。您可以尝试以下方法: query.ToList().ForEach(Console.WriteLine); 按空格拆分句子以获得单词数组 按单词的长度将它们分组,并按该长度排序 迭代每个组,
string value="This is my string value";
输出应该是这样的
2 letter words = 2
3 letter words = 0
4 letter words = 1
请帮助,提前谢谢。您可以尝试以下方法:
query.ToList().ForEach(Console.WriteLine);
按空格拆分句子以获得单词数组
按单词的长度将它们分组,并按该长度排序
迭代每个组,并用该字母数写出字母数和单词数
代码
首先,你需要决定什么是一个词。一种简单的方法是用空格分割字符串,但这也会计算逗号。另一种方法是使用以下正则表达式
\b\w+?\b
收集所有的火柴
现在,您已经获得了单词数组中的所有单词,我们可以编写LINQ查询:
var query = words.Where(x => x.Length >= 2 && x.Length <= 4)
.GroupBy(x => x.Length)
.Select(x => new { CharCount = x.Key, WordCount = x.Count() });
这张照片是:
{ CharCount = 4, WordCount = 1 }
{ CharCount = 2, WordCount = 2 }
您可以自己编写一些代码来生成更格式化的输出。如果我正确理解了您的问题 你可以用字典来做 在本例中,首先按空格拆分字符串
string value = "This is my string value";
string[] words = value.Split(' ');
然后通过单词数组循环,并将每个单词的长度设置为字典的键,注意我使用了字符串作为键,但您可以根据需要修改它
Dictionary<string, int> latteWords = new Dictionary<string,int>();
for(int i=0;i<words.Length;i++)
{
string key = words[i].Length + " letter word";
if (latteWords.ContainsKey(key))
latteWords[key] += 1;
else
latteWords.Add(key, 1);
}
随意修改此项。到目前为止,您尝试了什么?解决方案是用循环检查每个项目的长度!然后用word_counter[leni]++递增每个记录。检查Regex和string.Split-这可能是更方便的方法,因为我们的代码会更短
Dictionary<string, int> latteWords = new Dictionary<string,int>();
for(int i=0;i<words.Length;i++)
{
string key = words[i].Length + " letter word";
if (latteWords.ContainsKey(key))
latteWords[key] += 1;
else
latteWords.Add(key, 1);
}
foreach(var ind in latteWords)
{
Console.WriteLine(ind.Key + " = " + ind.Value);
}