How to sort a string with digits and letters (letters before digits) in C#

1 Answer

0 votes
using System;

class Program
{
    static string CustomSort(string input) {
        char[] chars = input.ToCharArray();

        Array.Sort(chars, (a, b) =>
        {
            if (char.IsLetter(a) && char.IsDigit(b)) return -1;
            if (char.IsDigit(a) && char.IsLetter(b)) return 1;
            return a.CompareTo(b);
        });

        return new string(chars);
    }

    static void Main()
    {
        string input = "d2c4b3a1";
        string sortedInput = CustomSort(input);
        
        Console.WriteLine("Custom sorted string: " + sortedInput);
    }
}



/*
run:

Custom sorted string: abcd1234

*/

 



answered May 26, 2025 by avibootz
...