Сортировка через интерфейс IComparer - C#
Формулировка задачи:
Создать массив char
(случайно и от руки). Отсортировать его при помощи Array.Sort так, чтобы вначале были гласные в алфавитном порядке, а после согласные в алфавитном порядке. Пример a, i,e,u, b,c,f,g.... Пожалуйста, помогитеРешение задачи: «Сортировка через интерфейс IComparer»
textual
Листинг программы
- using System;
- using System.Linq;
- using System.Collections.Generic;
- class Program
- {
- public class CharComparer : IComparer<char>
- {
- char []vovels = {'a','e','i', 'o','u'};
- char[] consonants = { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'x', 'z' };
- public int Compare(char a, char b)
- {
- if (consonants.Contains(a) == true &&
- vovels.Contains(b) == true)
- return 1;
- if (vovels.Contains(a) == true &&
- consonants.Contains(b) == true)
- return -1;
- return a.CompareTo(b);
- }
- }
- static void Main(string[] args)
- {
- string myString = string.Empty;
- while (myString != "0")
- {
- char[] arr = (myString = Console.ReadLine()).ToCharArray();
- Array.Sort(arr, new CharComparer());
- Console.WriteLine( arr);
- }
- Console.ReadKey(true);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д