C#で入力を受け付けて、半角スペース区切りで入力された数字を配列に格納するのですが、int型はsplitできないのですか?
一度string型に変換しないとだめなのでしょうか?
例えば 1 2 のように入力された数字です。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
「半角スペース区切りで入力された数字」=「文字列」=「string型」
ですよね?
(例:"1 2 3 4 5")
TextBoxに入力された値をTextプロパティから取得した時点ではstring型です。
ですので、int型にするのはそのstringをsplitしたあとの話では?
投稿2017/05/26 07:53
編集2017/05/26 08:31総合スコア559
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Consoleにせよ、TextBoxにせよ、一般的にキーボードから入力された数字は字であり、string
型となります。
なので、そもそもstring
型への変換は不要です。
表記のように空白区切りの数字を整数型にするには、下記のようになるかと。(誤入力がないパターンとあるパターンがあります)
csharp
1 2using System; 3using System.Collections.Generic; 4using System.Linq; 5 6namespace ConsoleApp7 7{ 8 internal class Program 9 { 10 private static void Main(string[] args) 11 { 12 Console.WriteLine("数字を空白区切りで入力してください"); 13 var ret = Console.ReadLine(); 14 15 //誤入力が絶対無い前提(失敗したらFormatExceptionが飛んでくる) 16 var array = ret.Split(' ').Select(str => int.Parse(str)).ToArray(); 17 18 //失敗したら読み飛ばすならこっち 19 var list = new List<int>(); 20 21 foreach (var s in ret.Split(' ')) 22 { 23 if (int.TryParse(s, out var i))list.Add(i); 24 } 25 } 26 } 27} 28 29
投稿2017/05/26 08:05
総合スコア260
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。