Swift 3.0で、Arrayのソートがうまくできません。
ArrayはString型の二次元配列です。
Arrayの5番目をソートするため
Swift
1str.sort { $1[5] < $0[5] }
と書いているのですが、String型のため一桁目の文字でソートされてしまい
Swift
10:50 21:50 32:5 43:40 54:4 65:30
となってしまいます。
これを数字通り
Swift
10:50 21:50 32:40 43:30 54:5 65:4
とするにはどうしたらよいでしょうか?
よろしくお願い致します。
追加-----------------------
ソートするArray"str2"の中身です
swift
1var str2: Array<Array<String>> = [] 2 3// CSV読み込み 4 if let csvPath = Bundle.main.path(forResource: "test", ofType: "csv") { 5 do { 6 var csvString = try NSString(contentsOfFile: csvPath, encoding: String.Encoding.utf8.rawValue) as String 7 csvString = csvString.replacingOccurrences(of: "\r\n", with: "") 8 let array2:Array = csvString.components(separatedBy: ",") 9 10 var items2 = [String]() 11 array2.enumerated().forEach { (index, value) in 12 13 items2.append(value) 14 15 if (index + 1) % 7 == 0{ 16 17 if exist == true{ 18 19 str2.append(items2) 20 21 items2 = [String]() 22 exist = false 23 24 }else{ 25 items2 = [String]() 26 } 27 } 28 29 } 30 } catch { 31 // エラー 32 } 33 } 34 35 for i in 0...str2.count-1 { 36 37 if str2[i][5] == "有" { 38 39 str.append(str2[i]) 40 41 } 42 } 43 44 str2 = str 45 46 str2.remove(at: 0) 47 str2.sort { $1[6] < $0[6] } 48 49}
回答1件
あなたの回答
tips
プレビュー