コンソールからスペースで区切られた1行でn個の指定された数値を読み取るタスクがあります。
別の行(Console.ReadLine()
)ですべての数値を読み取るときにそれを行う方法を知っていますが、数値が同じ行にある場合にそれを行う方法のヘルプが必要です。
_String.Split
_ を使用できます。文字列を複数に分割するために使用する文字を指定できます。何も指定しないと、すべての white-spaces が分割文字(つまり、改行、タブなど)と見なされます。
_string[] tokens = line.Split(); // all spaces, tab- and newline characters are used
_
または、区切り文字としてスペースのみを使用する場合:
_string[] tokens = line.Split(' ');
_
それらをint
に解析したい場合は、Array.ConvertAll()
を使用できます。
_int[] numbers = Array.ConvertAll(tokens, int.Parse); // fails if the format is invalid
_
形式が有効かどうかを確認する場合は、_int.TryParse
_を使用します。
String.Split()
を使用して行を分割できます。
var line = Console.ReadLine();
var numbers = line.Split(' ');
foreach(var number in numbers)
{
int num;
if (Int32.TryParse(number, out num))
{
// num is your number as integer
}
}
Linqからreadを使用して行を分割し、最後に各項目を整数に変換できます。
int[] numbers = Console
.ReadLine()
.Split(new Char[] {' '}, StringSplitOptions.RemoveEmptyEntries)
.Select(item => int.Parse(item))
.ToArray();
入力したデータを分割するだけです。
string numbersLine = console.ReadLine();
string[] numbers = numbersLine.Split(new char[] { ' '});
// Convert to int or whatever and use
できるよ
int[] Numbers = Array.ConvertAll(Console.ReadLine().Split(' '),(item) => Convert.ToInt32(item));
上記の行は、シングルスペースで区切られたLine内の個々の整数を取得するのに役立ちます。数値間に2つ以上のスペースがあると、エラーが発生します。
int[] Numbers = Array.ConvertAll(Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries), (item) => Convert.ToInt32(item));
このバリエーションはエラーを修正し、行内の数値間に2つ以上のスペースがある場合でも適切に機能します
これは、入力文字列の末尾または先頭にある余分な空白を削除するのに役立ちます。
string daat1String = Console.ReadLine();
daat1String = daat1String.TrimEnd().TrimStart();
string[] data1 = daat1String.Split(null);
int[] data1Int = Array.ConvertAll(data1, int.Parse);