需要显示字符串中每个单词的平均字母并显示
Need to display the average letters of each word in a string and display it
目前我是这样的,设置为显示总字数,我需要保留,或者修改保留让每个字的平均字母数显示,请如果可以的话,帮助任何人。非常感谢!:
private void btnCheck_Click(object sender, EvenArgs e)
{
string words = tbxArgument.Text.Trim();
MessageBox.Show("Number of Words: " + CountWords(words));
}
private int CountWords(字符串单词)
{
string[] allWords = words.Split(' ');
return allWords.Length;
}
不确定这是否是您想要完成的。
但这会给你所有单词的平均长度。
double totalCharacters = 0;
double avgCharacters = 0;
string[] words = new string[] {"Word1","Word2","Word3" } ;
foreach (string tmpString in words)
{
totalCharacters = totalCharacters + tmpString.Length;
}
avgCharacters = totalCharacters/words.Length;
这是一种只对字符串进行交互的方法,不会进行需要分配额外内存的拆分。只是一个优化,娱乐一下:
public static double GetAvgLetters(string text, out int wordsCount)
{
wordsCount = 0;
if (string.IsNullOrWhiteSpace(text))
{
return double.NaN;
}
var lettersCount = 0;
var isLetter = text[0] != ' ';
var readingLetter = isLetter;
for (int i = 0; i < text.Length; i++)
{
isLetter = text[i] != ' ';
if (isLetter != readingLetter)
{
readingLetter = isLetter;
if (readingLetter)
{
lettersCount++;
}
else
{
wordsCount++;
}
}
else if (isLetter)
{
lettersCount++;
}
}
if (isLetter == readingLetter && isLetter)
{
wordsCount++;
}
return lettersCount / (double)wordsCount;
}
我只是重复检查空白和非空白之间的变化(以计算单词数),并在阅读字母时计算字母数。最后,如果我们正在阅读字母并且最后一个字符是一个字母,我们必须添加最后一个单词来计数。
目前我是这样的,设置为显示总字数,我需要保留,或者修改保留让每个字的平均字母数显示,请如果可以的话,帮助任何人。非常感谢!:
private void btnCheck_Click(object sender, EvenArgs e)
{
string words = tbxArgument.Text.Trim();
MessageBox.Show("Number of Words: " + CountWords(words));
}
private int CountWords(字符串单词)
{
string[] allWords = words.Split(' ');
return allWords.Length;
}
不确定这是否是您想要完成的。
但这会给你所有单词的平均长度。
double totalCharacters = 0;
double avgCharacters = 0;
string[] words = new string[] {"Word1","Word2","Word3" } ;
foreach (string tmpString in words)
{
totalCharacters = totalCharacters + tmpString.Length;
}
avgCharacters = totalCharacters/words.Length;
这是一种只对字符串进行交互的方法,不会进行需要分配额外内存的拆分。只是一个优化,娱乐一下:
public static double GetAvgLetters(string text, out int wordsCount)
{
wordsCount = 0;
if (string.IsNullOrWhiteSpace(text))
{
return double.NaN;
}
var lettersCount = 0;
var isLetter = text[0] != ' ';
var readingLetter = isLetter;
for (int i = 0; i < text.Length; i++)
{
isLetter = text[i] != ' ';
if (isLetter != readingLetter)
{
readingLetter = isLetter;
if (readingLetter)
{
lettersCount++;
}
else
{
wordsCount++;
}
}
else if (isLetter)
{
lettersCount++;
}
}
if (isLetter == readingLetter && isLetter)
{
wordsCount++;
}
return lettersCount / (double)wordsCount;
}
我只是重复检查空白和非空白之间的变化(以计算单词数),并在阅读字母时计算字母数。最后,如果我们正在阅读字母并且最后一个字符是一个字母,我们必须添加最后一个单词来计数。