/// <summary> /// Returns all the longest words from the input string. /// </summary> /// <param name="text">Input string.</param> /// <returns>All the longest words from the input string.</returns> public static List <string> AllTheLongestWords(string text) { char[] separators = new char[] { ' ' }; string[] subs = StringMagic.RemoveExtraSymbols(text) .Split(separators, StringSplitOptions.RemoveEmptyEntries); var allTheLongest = new List <string>(); int tempMaxLength = default; //string longest = subs.OrderByDescending(s => s.Length).First(); foreach (var sub in subs) { if (sub.Length >= tempMaxLength) { tempMaxLength = sub.Length; } } foreach (var t in subs) { if ((t.Length == tempMaxLength)) { allTheLongest.Add(t); } } return(allTheLongest); }
/// <summary> /// Subroutine to demonstrate Task3 /// Задание 3. Создание метода, принимающего строку и возвращающего новую строку, в которой удалены все рядом стоящие повторяющиеся символы. /// </summary> internal static void Task3() { Console.WriteLine("\n3. Создание метода, принимающего строку и возвращающего новую строку, в которой удалены все рядом стоящие повторяющиеся символы."); Console.WriteLine("\nPlease write a string of text."); Console.WriteLine($"\nEye friendly string is: {StringMagic.RemoveSymbolsThatRepeat(Console.ReadLine())}"); Console.WriteLine("\nPress any key to continue."); Console.ReadKey(); }
/// <summary> /// Subroutine to demonstrate Task2_2 /// Создать метод, принимающий текст и возвращающий слово(слова) с максимальным количеством букв /// Примечание: слова в тексте могут быть разделены символами (пробелом, точкой, запятой) /// </summary> internal static void Task2_2() { Console.WriteLine("\n2.2. Создать метод, принимающий текст и возвращающий слово(слова) с максимальным количеством букв."); Console.WriteLine("\nPlease write a string of text."); Console.WriteLine($"\nAll the longest words are: {string.Join(", ", StringMagic.AllTheLongestWords(Console.ReadLine()))}"); Console.WriteLine("\nPress any key to continue."); Console.ReadKey(); }
/// <summary> /// Subroutine to demonstrate Task2_1 /// Создать метод, принимающий текст и возвращающий слово, содержащее минимальное количество букв /// </summary> internal static void Task2_1() { Console.WriteLine("\n2.1. Создать метод, принимающий текст и возвращающий слово, содержащее минимальное количество букв."); Console.WriteLine("\nPlease write a string of text."); Console.WriteLine($"\nOne of the shortest words is: {StringMagic.OneOfTheShortestWords(Console.ReadLine())}"); Console.WriteLine("\nPress any key to continue."); Console.ReadKey(); }
/// <summary> /// Returns one of the shortest words from the input string. /// </summary> /// <param name="text">Input string.</param> /// <returns>One of the shortest words from the input strings.</returns> public static string OneOfTheShortestWords(string text) { char[] separators = new char[] { ' ' }; string[] subs = StringMagic.RemoveExtraSymbols(text) .Split(separators, StringSplitOptions.RemoveEmptyEntries); int tempMinLength = int.MaxValue; string oneOfTheShortest = ""; foreach (var sub in subs) { if (sub.Length <= tempMinLength) { tempMinLength = sub.Length; oneOfTheShortest = sub; } } return(oneOfTheShortest); }