Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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# 如何使用asp c计算字符串中的2或3个字母单词_C#_Asp.net - Fatal编程技术网

C# 如何使用asp c计算字符串中的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); 按空格拆分句子以获得单词数组 按单词的长度将它们分组,并按该长度排序 迭代每个组,

如何使用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);
按空格拆分句子以获得单词数组 按单词的长度将它们分组,并按该长度排序 迭代每个组,并用该字母数写出字母数和单词数 代码


首先,你需要决定什么是一个词。一种简单的方法是用空格分割字符串,但这也会计算逗号。另一种方法是使用以下正则表达式

\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);
}