Удалить средную букву из самого длинного слова и напечатать все слова на экран - C#
Формулировка задачи:
Дано предложение. Напечатать все его слова, предварительно преобразовав каждое из них по следующему правилу: в самом длинном слове удалить среднюю (средние) буквы. Принять, что такое слово — единственное.
Решение задачи: «Удалить средную букву из самого длинного слова и напечатать все слова на экран»
textual
Листинг программы
static void Main(string[] args)
{
string sentence = "this is your senetnce, and u need 2 split it";
string[] arr = sentence.Split(new char[] { ' ', '\t', ',', ':' }, StringSplitOptions.RemoveEmptyEntries); // разбиваем на слова
int maxLength = 0; // храним максималюную длину слова
int idx = 0; // храним индекс этого слова в массиве
for (int i = 0; i < arr.Length; i++) // находим самое длинное слова
if (arr[i].Length > maxLength)
{
maxLength = arr[i].Length;
idx = i;
}
int d = arr[idx].Length / 2; // переменная для хранения индекса середины слова, для простоты
if (arr[idx].Length % 2 == 0) // если длинна делится на 2 без остатка убираем 2 буквы
{
arr[idx] = arr[idx].Substring(0, d - 1) + arr[idx].Substring(d + 1, arr[idx].Length - d - 1);
}
else // иначе одну
arr[idx] = arr[idx].Substring(0, d) + arr[idx].Substring(d + 1, arr[idx].Length - d - 1);
foreach (string s in arr) // отображаем массив строк
Console.WriteLine(s);
Console.ReadKey();
}