일모도원(日暮途遠) 개발자
[Swift] 문자열에 숫자가 있는거 정렬하기 본문
파일명이 "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
'프로그래밍 언어 > 스위프트' 카테고리의 다른 글
[Swift] Range를 이용한 Array생성 (0) | 2022.12.07 |
---|---|
[스위프트] switch문에서 @unknown default (0) | 2022.09.13 |
[Swift] ~= 연산자 (0) | 2022.08.08 |
[Swift] @objc가 뭐지? (0) | 2022.07.23 |
[Swift] class func vs static func (0) | 2022.07.20 |