Нужно в нем посчитать количество предложений, количество слов в каждом предложении, сколько определенных букв - C#
Формулировка задачи:
Дан текст вводится в textBox. Нужно в нем посчитать количество предложений, количество слов в каждом предложении, сколько определенных букв в каждом предложении. Как посчитать кол-во слов и букв в каждом предложении. Заранее спасибо
int i_числоЭлементовМассива = 0;
string s_входнаяСтрока2 = textBox_Ввод.Text;
string[] s_массивПредложений = s_входнаяСтрока2.Split('.', '!', '?');
i_числоЭлементовМассива = s_массивПредложений.Length;Решение задачи: «Нужно в нем посчитать количество предложений, количество слов в каждом предложении, сколько определенных букв»
textual
Листинг программы
string text = "Мама мыла раму... Second sentence!? Третье предложение??? Yes.";
//Разбить на предложения
string[] sentences = Regex.Split(text, @"(?<=[\.!\?])\s+", RegexOptions.IgnoreCase);
foreach (string sentence in sentences)
{
Console.WriteLine(sentence);
}
Console.WriteLine();
//Число слов
var words = sentences.Select(input => Regex.Matches(input, @"\w+")
.Cast<Match>()
.Select(x=>x.Value).Count()).ToArray();
for (var i = 0; i < sentences.Length; i++)
{
Console.WriteLine(sentences[i]+" - "+words[i]+" слова");
}
Console.WriteLine();
//Буквы в предложениях
foreach (var sentence in sentences)
{
var dit = sentence.Where(x => Char.IsLetter(x)).Distinct().ToArray();
var s = dit.Select(x => new { Letter = x, Count = sentence.Count(y => y == x) }).ToArray();
Console.WriteLine("Буквы для: " + sentence);
Console.WriteLine(String.Join("\r\n", s.Select(x=> x.Letter+" "+x.Count)));
Console.WriteLine();
}
Console.ReadKey();