Using System;
using System.Text.RegularExpressions;
using static System.Console;
internal static class Program
{
private static void Main()
{
try
{
WriteLine("Введите строку");
var s = ReadLine();
//1) Составить программу удаляющую из данного текста все буквосочетания "ма" и выводящую получившийся текст и его длину.
var s1 = Task1(s, "ма");
WriteLine($"Удалить буквосочетания \"ма\"\nТекст = {s1}\nДлина = {s1.Length}");
s1 = Task1Regex(s, "ма");
WriteLine($"Удалить буквосочетания \"ма\"\nТекст = {s1}\nДлина = {s1.Length}");
//2) Составить программу находящую количество букв "с" в тексте.
WriteLine($"Количество букв \"с\" в тексте = {Task2(s, "с")}");
WriteLine($"Количество букв \"с\" в тексте = {Task2Regex(s, "с")}");
//3) Составить программу определяющую, какая из букв "е" или "о" встречается в тексте чаще.
WriteLine($"В тексте чаще встречается = {Task3(s, "е", "о")}");
WriteLine($"В тексте чаще встречается = {Task3Regex(s, "е", "о")}");
ReadLine();
}
catch(Exception e)
{
WriteLine(e);
ReadLine();
}
}
private static string Task1(string s, string frase)
{
s = s.Replace(frase, "");
return s;
}
private static int Task2(string s, string frase)
{
var count = -1;
var k = -1;
do
{
count++;
k = s.IndexOf(frase, k+1, StringComparison.Ordinal);
} while (k >= 0);
return count;
}
private static string Task3(string s, string frase1, string frase2)
{
var count1 = Task2(s, frase1);
var count2 = Task2(s, frase2);
if (count1 == count2)
return "поравну";
return count1 > count2 ? frase1 : frase2;
}
private static string Task1Regex(string s, string frase)
{
var ms = Regex.Replace(s, frase, "");
return ms;
}
private static int Task2Regex(string s, string frase)
{
var m = Regex.Matches(s, frase);
return m.Count;
}
private static string Task3Regex(string s, string frase1, string frase2)
{
var count1 = Task2Regex(s, frase1);
var count2 = Task2Regex(s, frase2);
if (count1 == count2)
return "поравну";
return count1 > count2 ? frase1 : frase2;
}
}