일모도원(日暮途遠) 개발자

[Swift] 문자열에 숫자가 있는거 정렬하기 본문

프로그래밍 언어/스위프트

[Swift] 문자열에 숫자가 있는거 정렬하기

달님개발자 2022. 9. 3. 00:17

파일명이 "movie 9.mp4", "movie 10.mp4", "movie 11.mp4" 처럼 있다.

 

오름차순으로 정렬할려고 아래처럼 사용하니

files.sort(by: { $0.compare($1) == .orderedAscending } )

결과가 "movie 10.mp4", ""movie 11.mp4", "movie 9.mp4"처럼 나왔다. 이는 "movie 1"과 "movie 9"가 비교되어서 그렇다.


이럴때는 compare대신 localizedStandardCompare를 쓰면 원하는 방식으로 정렬이 된다.

files.sort(by: { $0.localizedStandardCompare($1) == .orderedAscending } )

"movie 9.mp4", "movie 10.mp4", "movie 11.mp4"

 

 

참고

https://stackoverflow.com/questions/43870101/swift-sort-an-array-with-strings-and-numbers