How to sort by numbers a mixed pair of string and number elements in an array with Swift

1 Answer

0 votes
import Foundation

let arr = [
    "Python 4", "C 9", "C++ 5", "C# 6",
    "Java 1", "PHP 7", "Go 2"
]

func extractNumber(_ s: String) -> Int {
    let pos = s.lastIndex(of: " ")!
    let numPart = s[s.index(after: pos)...]
    
    return Int(numPart)!
}

let sorted = arr.sorted { a, b in
    extractNumber(a) < extractNumber(b)
}

print(sorted)



/*
run:

["Java 1", "Go 2", "Python 4", "C++ 5", "C# 6", "PHP 7", "C 9"]

*/

 



answered Jan 23 by avibootz

Related questions

...