How to sort a string with digits and letters (letters before digits) in VB.NET

1 Answer

0 votes
Imports System

Class Program
    Private Shared Function CustomSort(ByVal input As String) As String
        Dim chars As Char() = input.ToCharArray()
		
        Array.Sort(chars, Function(a, b)
                      		If Char.IsLetter(a) AndAlso Char.IsDigit(b) Then Return -1
                      		If Char.IsDigit(a) AndAlso Char.IsLetter(b) Then Return 1
                            Return a.CompareTo(b)
                          End Function)
				
        Return New String(chars)
    End Function

	Public Shared Sub Main()
        Dim input As String = "d2c4b3a1"
				
        Dim sortedInput As String = CustomSort(input)
				
        Console.WriteLine("Custom sorted string: " & sortedInput)
    End Sub
End Class

 

' run:
'
' Custom sorted string: abcd1234
'

 



answered May 26 by avibootz
...