teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/12/16 04:58

投稿

razuma
razuma

スコア1313

answer CHANGED
@@ -50,4 +50,79 @@
50
50
  }
51
51
 
52
52
  print(newStr)
53
+ ```
54
+
55
+ ==== 回答追記
56
+ カンマまでを文字列としたときのサンプル。あくまでサンプルなので〜省略
57
+
58
+ ```
59
+ var array:Array<Array<String>> = [[],[],[],[],[],[]]
60
+
61
+ let str = "こんにちわ,,おはよう,,お疲れ様\nこんにちわ,また明日,,,お疲れ様\n"
62
+
63
+ var count = 0
64
+ var inputStr = ""
65
+
66
+ print(str)
67
+
68
+ for c in str {
69
+
70
+ if(c == "\n"){
71
+ array[count].append(inputStr)
72
+ array[count+1].append("\n")
73
+ count = 0
74
+ inputStr = ""
75
+ continue
76
+ }
77
+
78
+ if(c == ","){
79
+ array[count].append(inputStr)
80
+ inputStr = ""
81
+ count += 1
82
+ }else{
83
+ inputStr += String(c)
84
+ }
85
+ }
86
+
87
+ print(array)
88
+
89
+ var newArray:Array<Array<String>> = []
90
+
91
+ for ar in array {
92
+
93
+ var delFlg = true
94
+
95
+ for a in ar {
96
+ if(a != ""){
97
+ delFlg = false
98
+ }
99
+ }
100
+
101
+ if(!delFlg){
102
+ newArray.append(ar)
103
+ }
104
+ }
105
+
106
+ print(newArray)
107
+
108
+ var newStr = ""
109
+
110
+ for i in 0...1 {
111
+
112
+ var flg = false
113
+
114
+ for newA in newArray {
115
+
116
+ if(newA[i] != "\n" && flg){
117
+ newStr += ","
118
+ }
119
+
120
+ flg = true
121
+
122
+ newStr += newA[i]
123
+
124
+ }
125
+ }
126
+
127
+ print(newStr)
53
128
  ```

1

コメントへの回答追記

2020/12/16 04:58

投稿

razuma
razuma

スコア1313

answer CHANGED
@@ -1,1 +1,53 @@
1
- 単純に最初に思いつくのは各列の文字を1字ずつ順番に格納していって、最後まで格納し終わったときに全て空白のものを見つけて、それ以外を結合しなおして文字列を作り直せば良いのではないでしょうか。(もっと良い方法はありそうですがシンプルに考えると)
1
+ 単純に最初に思いつくのは各列の文字を1字ずつ順番に格納していって、最後まで格納し終わったときに全て空白のものを見つけて、それ以外を結合しなおして文字列を作り直せば良いのではないでしょうか。(もっと良い方法はありそうですがシンプルに考えると)
2
+
3
+ ===コメントへの回答追記
4
+
5
+ 今Xcodeの再インストール中でオンラインで打てるSwiftで打ったコードなので正しいのかわからないのと、結構適当に書いたので諸々あれですが、処理の流れの参考にだけ。
6
+
7
+ ```
8
+ var array:Array<Array<String>> = [[],[],[],[],[],[],[],[]]
9
+
10
+ var str = "A,,,e,,\nAb,,,fg\n,bc,e,g\nAb,,efg\n"
11
+
12
+ var count = 0
13
+
14
+ for c in str {
15
+
16
+ array[count].append(String(c))
17
+
18
+ count += 1
19
+
20
+ if(c == "\n"){
21
+ count = 0
22
+ }
23
+ }
24
+
25
+ var newArray:Array<Array<String>> = []
26
+
27
+ for ar in array {
28
+
29
+ var delFlg = true
30
+
31
+ for a in ar {
32
+ if(a != ","){
33
+ delFlg = false
34
+ }
35
+ }
36
+
37
+ if(!delFlg){
38
+ newArray.append(ar)
39
+ }
40
+ }
41
+
42
+ var newStr = ""
43
+ var count2 = 0
44
+
45
+ for i in 0...3 {
46
+ for newA in newArray {
47
+ newStr += newA[count2]
48
+ }
49
+ count2 += 1
50
+ }
51
+
52
+ print(newStr)
53
+ ```