質問編集履歴

2

コードを追加しました

2016/12/10 13:20

投稿

ababab
ababab

スコア47

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,115 @@
53
53
  とするにはどうしたらよいでしょうか?
54
54
 
55
55
  よろしくお願い致します。
56
+
57
+
58
+
59
+ 追加-----------------------
60
+
61
+
62
+
63
+ ソートするArray"str2"の中身です
64
+
65
+
66
+
67
+ ```swift
68
+
69
+ var str2: Array<Array<String>> = []
70
+
71
+
72
+
73
+ // CSV読み込み
74
+
75
+ if let csvPath = Bundle.main.path(forResource: "test", ofType: "csv") {
76
+
77
+ do {
78
+
79
+ var csvString = try NSString(contentsOfFile: csvPath, encoding: String.Encoding.utf8.rawValue) as String
80
+
81
+ csvString = csvString.replacingOccurrences(of: "\r\n", with: "")
82
+
83
+ let array2:Array = csvString.components(separatedBy: ",")
84
+
85
+
86
+
87
+ var items2 = [String]()
88
+
89
+ array2.enumerated().forEach { (index, value) in
90
+
91
+
92
+
93
+ items2.append(value)
94
+
95
+
96
+
97
+ if (index + 1) % 7 == 0{
98
+
99
+
100
+
101
+ if exist == true{
102
+
103
+
104
+
105
+ str2.append(items2)
106
+
107
+
108
+
109
+ items2 = [String]()
110
+
111
+ exist = false
112
+
113
+
114
+
115
+ }else{
116
+
117
+ items2 = [String]()
118
+
119
+ }
120
+
121
+ }
122
+
123
+
124
+
125
+ }
126
+
127
+ } catch {
128
+
129
+ // エラー
130
+
131
+ }
132
+
133
+ }
134
+
135
+
136
+
137
+ for i in 0...str2.count-1 {
138
+
139
+
140
+
141
+ if str2[i][5] == "有" {
142
+
143
+
144
+
145
+ str.append(str2[i])
146
+
147
+
148
+
149
+ }
150
+
151
+ }
152
+
153
+
154
+
155
+ str2 = str
156
+
157
+
158
+
159
+ str2.remove(at: 0)
160
+
161
+ str2.sort { $1[6] < $0[6] }
162
+
163
+
164
+
165
+ }
166
+
167
+ ```

1

質問文全体を更新しました

2016/12/10 13:20

投稿

ababab
ababab

スコア47

test CHANGED
File without changes
test CHANGED
@@ -12,40 +12,44 @@
12
12
 
13
13
  ```
14
14
 
15
- と書いているのですが、全部で要素が120個あるうち、40番ソートでき、
15
+ と書いているのですが、String型のため一桁の文字でソートされてしまい
16
-
17
- 41番目以降はそれ以降の要素で再度ソートされるようになってしまいます。
18
16
 
19
17
  ```Swift
20
18
 
21
19
  0:50
22
20
 
23
- 1:45
21
+ 1:50
22
+
23
+ 2:5
24
+
25
+ 3:40
26
+
27
+ 4:4
28
+
29
+ 5:30
30
+
31
+ ```
32
+
33
+ となってしまいます。
34
+
35
+ これを数字通り
36
+
37
+ ```Swift
38
+
39
+ 0:50
40
+
41
+ 1:50
24
42
 
25
43
  2:40
26
44
 
27
- ...
45
+ 3:30
28
46
 
29
- 40:5
47
+ 4:5
30
48
 
31
- 41:50
32
-
33
- 42:50
34
-
35
- 43:45
49
+ 5:4
36
50
 
37
51
  ```
38
52
 
39
- のような結果になってしまいます。
40
-
41
-
42
-
43
- 試しに他のArrayでこのコードを試してみたのですが、
44
-
45
- そちらの場合はすべての要素をまとめてソートできていました。
46
-
47
-
48
-
49
- なぜこのよになってまうのでしょうか?
53
+ とするにはどうしたらよいでしょうか?
50
54
 
51
55
  よろしくお願い致します。