How to sort a string with digits and letters (digits before letters) 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.IsDigit(a) && char.IsLetter(b)) return -1;
            if (char.IsLetter(a) && char.IsDigit(b)) return 1;
            return a.CompareTo(b);
        });
 
        return new string(chars);
    }
 
    static void Main()
    {
        string input = "d2c5e4b3a1";
        string sortedInput = CustomSort(input);
         
        Console.WriteLine("Custom sorted string: " + sortedInput);
    }
}



/*
run:

Custom sorted string: 12345abcde

*/
 

 



answered May 27, 2025 by avibootz
...