Напечатать в алфавитном порядке все гласные, входящие в четные слова - PascalABC.NET
Формулировка задачи:
Условие: Дан текст на русском языке. Напечатать в алфавитном порядке все гласные, входящие в четные слова. Прошу помочь, заранее спасибо.
Решение задачи: «Напечатать в алфавитном порядке все гласные, входящие в четные слова»
textual
Листинг программы
begin
var s := 'Условие: Дан текст на русском языке. Напечатать в алфавитном порядке все гласные, входящие в четные слова';
writeln(s.Split(': .,!?'.ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries).
Where((v, i) -> odd(i)).Aggregate((x, y) -> x + y).Intersect('аеиоуыэюя').OrderBy(c -> c));
end.
Объяснение кода листинга программы
- В первой строке объявляется переменная
sи присваивается ей значение 'Условие: Дан текст на русском языке. Напечатать в алфавитном порядке все гласные, входящие в четные слова'. - Далее, с помощью метода
Split, строкаsразбивается на массив строк по символам ': .,!?'. - Затем, с помощью метода
Whereи лямбда-выражения, из полученного массива выбираются только четные слова. - После этого, с помощью метода
Aggregate, из выбранных четных слов собирается одна строка, которая затем с помощью методаIntersectпересекается с набором гласных букв 'аеиоуыэюя'. - И, наконец, результат пересечения сортируется в алфавитном порядке с помощью метода
OrderBy. - Выводится полученная строка с гласными буквами.