сортировка строки по алфавиту в c # - PullRequest
0 голосов
/ 11 июня 2018

Мне нужно отсортировать неизвестную строку по алфавиту.Мне нужно поставить заглавные буквы спереди и после маленьких букв, но все же сохранить порядок.Пример: вход: это просто игра Выход: AaeGhIiJmssTtu

, пожалуйста, помогите.Спасибо

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Я предпочитаю метод сортировки

string s = "This Is Just A Game"; //what about blanks?
var c = s.ToList<char>();
c.Sort(delegate (char x, char y)
{
    if (char.ToLower(x) == char.ToLower(y)) 
        return (char.IsLower(x)? 1:-1);
    return (char.ToLower(x) > char.ToLower(y) ? 1:-1);
});
Console.WriteLine(new string(c.ToArray()));
0 голосов
/ 11 июня 2018

Удалите пробелы, затем отсортируйте их по символам в нижнем регистре, а затем по тому, является ли символ строчными:

string s = "This Is Just A Game";

string result = string.Concat(
    s.Replace(" ", "")
    .OrderBy(char.ToLower)
    .ThenBy(char.IsLower));

Console.WriteLine(result);

.ThenBy(char.IsLower) работает, потому что false < true, поэтому символы в верхнем регистре (для которых char.IsLower() возвращает false) будут отсортированы до символов нижнего регистра (для которых char.IsLower() возвращает true).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...