计算字符串中的平均字母

时间:2016-04-22 17:54:47

标签: c# .net string average

我需要根据用户输入计算每个单词的平均字母数。但我不知道该怎么做。我知道我需要找到总字母,然后分开。

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

2 个答案:

答案 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();