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

回答編集履歴

1

Linqを使わないコード例を追記

2021/10/23 13:20

投稿

dodox86
dodox86

スコア9416

answer CHANGED
@@ -44,4 +44,36 @@
44
44
  result: 1-2-3-4-5-6-7-8
45
45
  ```
46
46
 
47
- もっとスマートなやり方があるかもしれませんね。一例ということでの回答です。
47
+ もっとスマートなやり方があるかもしれませんね。一例ということでの回答です。
48
+
49
+ ---
50
+ **追記しました:**
51
+
52
+ 「C#をはじめてまだ日も浅い」とのことでしたので、Linqなど使わず、実直(?)に処理する簡単な例をおまけとして追記しておきます。※stringからchar配列は簡単ですが、1文字ずつのstring配列化は依然として面倒です。
53
+ ```C#
54
+ string s3 = "1,2 3 4 567,8";
55
+ string charsToSkip = ", "; // スキップしたい文字群(区切り文字に相当)
56
+ List<string> slist = new List<string>();
57
+ foreach (char c in s3.ToCharArray())
58
+ {
59
+ if (charsToSkip.Contains(c))
60
+ {
61
+ // スキップしたい文字
62
+ ;
63
+ }
64
+ else
65
+ {
66
+ slist.Add(new string(c, 1));
67
+ }
68
+ }
69
+ string[] a3 = slist.ToArray();
70
+ Console.WriteLine($"(3) {s3}");
71
+ Console.WriteLine("result: " + string.Join('-', a3));
72
+
73
+ /* (2)と同じ出力を得ます。
74
+ (3) 1,2 3 4 567,8
75
+ result: 1-2-3-4-5-6-7-8
76
+ */
77
+ ```
78
+
79
+ 「**色々な方法がある**」ということです。