我需要根据用户输入计算每个单词的平均字母数。但我不知道该怎么做。我知道我需要找到总字母,然后分开。
private void button1_Click(object sender, EventArgs e)
{
var wordCount = countMethod(textBox1.Text);
MessageBox.Show(wordCount.ToString());
}
private int countMethod(string input)
{
var separators = new[] { ' ', '.' };
var count = input.Split(separators, StringSplitOptions.RemoveEmptyEntries).Length;
return count;
}
答案 0 :(得分:1)
您可以使用LINQ Average
执行此操作
private double AverageWordLetter(string input)
{
var separators = new[] { ' ', '.' };
var average = input.Split(separators, StringSplitOptions.RemoveEmptyEntries)
.Select(x=>x.Length).Average();
return average;
}
答案 1 :(得分:1)
你可以这样做。
var separators = new[] { ' ', '.' };
var words = input.Split(separators, StringSplitOptions.RemoveEmptyEntries);
decimal avg = words.Count() ==0? 0: (decimal) words.Sum(s=>s.Length)/(decimal)words.Count();
或,如@dotctor
建议(在评论中),我们可以简单地使用Average
扩展名。
var separators = new[] { ' ', '.' };
var words = input.Split(separators, StringSplitOptions.RemoveEmptyEntries);
var avg = words.Select(s=>s.Length).Average();