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

1 Answer

0 votes
import Foundation
 
func customSort(_ input: String) -> String {
    var chars = Array(input)
 
    chars.sort {
        if $0.isNumber && $1.isLetter { return true } // Digits before letters
        if $0.isLetter && $1.isNumber { return false } // Letters after digits
        return $0 < $1
    }
 
    return String(chars)
}
 
let input = "ed2c54b3a1"
let sortedInput = customSort(input)
 
print("Custom sorted string:", sortedInput)
 
 
 
/*
run:
 
Custom sorted string: 12345abcde
 
*/

 



answered May 27, 2025 by avibootz
...