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

1 Answer

0 votes
import Foundation

func customSort(_ input: String) -> String {
    var chars = Array(input)

    chars.sort {
        if $0.isLetter && $1.isNumber { return true }  // Letters before digits
        if $0.isNumber && $1.isLetter { return false } // Digits after letters
        return $0 < $1
    }

    return String(chars)
}

let input = "d2c4b3a1"
let sortedInput = customSort(input)

print("Custom sorted string:", sortedInput)



/*
run:

Custom sorted string: abcd1234

*/

 



answered May 26, 2025 by avibootz
...