[C#] コンソール入力から配列を作成する方法

C#でコンソール入力から配列を作成する方法は、まずユーザーからの入力を受け取り、それを適切に分割して配列に変換します。

一般的な手順としては、Console.ReadLine()を使用して入力を取得し、string.Split()メソッドを用いて文字列を分割します。

例えば、スペースやカンマで区切られた数値を入力として受け取る場合、Split(' ')Split(',')を使用します。

その後、int.Parse()double.Parse()などを用いて文字列を数値に変換し、配列に格納します。

これにより、ユーザーが入力したデータをプログラム内で配列として扱うことができます。

この記事でわかること
  • コンソール入力を分割し、配列に変換する基本的な手順
  • スペース、カンマ、改行で区切られた数値入力の処理方法
  • 文字列配列や2次元配列の作成方法
  • リストと配列の相互変換の方法とその利点

目次から探す

コンソール入力から配列を作成する手順

C#でコンソールから入力を受け取り、それを配列として格納する方法について解説します。

このプロセスは、入力データの分割、文字列から数値への変換、そして配列へのデータ格納の3つのステップで構成されます。

入力データの分割

コンソールから入力されたデータは通常、1つの文字列として取得されます。

この文字列を特定の区切り文字で分割し、配列に変換する必要があります。

以下のサンプルコードでは、スペースで区切られた数値を分割しています。

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("数値をスペースで区切って入力してください:");
        string input = Console.ReadLine(); // ユーザーからの入力を取得
        string[] stringArray = input.Split(' '); // スペースで文字列を分割
    }
}

このコードでは、ユーザーが入力した文字列をスペースで分割し、stringArrayに格納しています。

文字列から数値への変換

分割された文字列を数値に変換する必要があります。

以下のコードでは、int型の配列に変換しています。

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("数値をスペースで区切って入力してください:");
        string input = Console.ReadLine(); // ユーザーからの入力を取得
        string[] stringArray = input.Split(' '); // スペースで文字列を分割
        int[] numbers = Array.ConvertAll(stringArray, int.Parse); // 文字列配列を整数配列に変換
    }
}

このコードでは、Array.ConvertAllメソッドを使用して、文字列配列を整数配列に変換しています。

配列へのデータ格納

最後に、変換された数値を配列に格納します。

上記のコードでは、すでにnumbersという整数配列にデータが格納されています。

以下に、配列の内容を表示するコードを追加します。

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("数値をスペースで区切って入力してください:");
        string input = Console.ReadLine(); // ユーザーからの入力を取得
        string[] stringArray = input.Split(' '); // スペースで文字列を分割
        int[] numbers = Array.ConvertAll(stringArray, int.Parse); // 文字列配列を整数配列に変換
        Console.WriteLine("入力された数値の配列:");
        foreach (int number in numbers)
        {
            Console.WriteLine(number); // 配列の各要素を表示
        }
    }
}

このコードを実行すると、ユーザーが入力した数値が配列に格納され、各要素がコンソールに表示されます。

これにより、コンソール入力から配列を作成する基本的な手順が完了します。

実践例:数値配列の作成

ここでは、コンソールからの入力をさまざまな区切り文字で分割し、数値配列を作成する実践例を紹介します。

スペース、カンマ、改行で区切られた入力をそれぞれ処理する方法を見ていきます。

スペース区切りの数値入力

スペースで区切られた数値を入力し、それを配列に変換する方法です。

以下のコードは、ユーザーがスペースで区切った数値を入力し、それを整数配列に変換して表示します。

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("数値をスペースで区切って入力してください:");
        string input = Console.ReadLine(); // ユーザーからの入力を取得
        string[] stringArray = input.Split(' '); // スペースで文字列を分割
        int[] numbers = Array.ConvertAll(stringArray, int.Parse); // 文字列配列を整数配列に変換
        Console.WriteLine("入力された数値の配列:");
        foreach (int number in numbers)
        {
            Console.WriteLine(number); // 配列の各要素を表示
        }
    }
}

このコードを実行すると、スペースで区切られた数値が配列に格納され、各要素が表示されます。

カンマ区切りの数値入力

次に、カンマで区切られた数値を入力し、それを配列に変換する方法です。

以下のコードは、ユーザーがカンマで区切った数値を入力し、それを整数配列に変換して表示します。

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("数値をカンマで区切って入力してください:");
        string input = Console.ReadLine(); // ユーザーからの入力を取得
        string[] stringArray = input.Split(','); // カンマで文字列を分割
        int[] numbers = Array.ConvertAll(stringArray, int.Parse); // 文字列配列を整数配列に変換
        Console.WriteLine("入力された数値の配列:");
        foreach (int number in numbers)
        {
            Console.WriteLine(number); // 配列の各要素を表示
        }
    }
}

このコードを実行すると、カンマで区切られた数値が配列に格納され、各要素が表示されます。

改行区切りの数値入力

最後に、改行で区切られた数値を入力し、それを配列に変換する方法です。

以下のコードは、ユーザーが改行で区切った数値を入力し、それを整数配列に変換して表示します。

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        Console.WriteLine("数値を改行で区切って入力してください。終了するには空行を入力してください:");
        List<int> numbersList = new List<int>(); // 数値を格納するリストを作成
        while (true)
        {
            string input = Console.ReadLine(); // ユーザーからの入力を取得
            if (string.IsNullOrEmpty(input)) // 空行が入力されたら終了
            {
                break;
            }
            numbersList.Add(int.Parse(input)); // 入力された数値をリストに追加
        }
        int[] numbers = numbersList.ToArray(); // リストを配列に変換
        Console.WriteLine("入力された数値の配列:");
        foreach (int number in numbers)
        {
            Console.WriteLine(number); // 配列の各要素を表示
        }
    }
}

このコードを実行すると、ユーザーが改行で区切って入力した数値が配列に格納され、各要素が表示されます。

空行を入力することで入力を終了します。

応用例

コンソール入力から配列を作成する基本的な方法を学んだところで、ここではその応用例を紹介します。

文字列配列の作成、2次元配列の作成、リストと配列の変換について解説します。

文字列配列の作成

数値だけでなく、文字列を配列として扱うこともできます。

以下のコードは、ユーザーがスペースで区切った文字列を入力し、それを文字列配列に変換して表示します。

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("文字列をスペースで区切って入力してください:");
        string input = Console.ReadLine(); // ユーザーからの入力を取得
        string[] stringArray = input.Split(' '); // スペースで文字列を分割
        Console.WriteLine("入力された文字列の配列:");
        foreach (string str in stringArray)
        {
            Console.WriteLine(str); // 配列の各要素を表示
        }
    }
}

このコードを実行すると、スペースで区切られた文字列が配列に格納され、各要素が表示されます。

2次元配列の作成

2次元配列を作成するには、行と列の情報を入力から取得する必要があります。

以下のコードは、ユーザーが行ごとにスペースで区切った数値を入力し、それを2次元配列に変換して表示します。

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("行数を入力してください:");
        int rows = int.Parse(Console.ReadLine()); // 行数を取得
        Console.WriteLine("各行の数値をスペースで区切って入力してください:");
        int[,] matrix = new int[rows, 3]; // 3列の2次元配列を作成
        for (int i = 0; i < rows; i++)
        {
            string[] stringArray = Console.ReadLine().Split(' '); // 各行をスペースで分割
            for (int j = 0; j < stringArray.Length; j++)
            {
                matrix[i, j] = int.Parse(stringArray[j]); // 文字列を整数に変換して格納
            }
        }
        Console.WriteLine("入力された2次元配列:");
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                Console.Write(matrix[i, j] + " "); // 2次元配列の各要素を表示
            }
            Console.WriteLine();
        }
    }
}

このコードを実行すると、ユーザーが入力した数値が2次元配列に格納され、行ごとに表示されます。

リストと配列の変換

リストと配列は相互に変換することができます。

以下のコードは、リストを配列に変換し、また配列をリストに変換する方法を示しています。

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        List<int> numberList = new List<int> { 1, 2, 3, 4, 5 }; // リストを作成
        int[] numberArray = numberList.ToArray(); // リストを配列に変換
        Console.WriteLine("リストから変換された配列:");
        foreach (int number in numberArray)
        {
            Console.WriteLine(number); // 配列の各要素を表示
        }
        List<int> newList = new List<int>(numberArray); // 配列をリストに変換
        Console.WriteLine("配列から変換されたリスト:");
        foreach (int number in newList)
        {
            Console.WriteLine(number); // リストの各要素を表示
        }
    }
}

このコードを実行すると、リストから配列への変換と、配列からリストへの変換が行われ、それぞれの要素が表示されます。

リストと配列の変換は、データの操作や管理を柔軟に行うために便利です。

よくある質問

入力データが不正な場合はどうする?

入力データが不正な場合、プログラムが例外をスローする可能性があります。

これを防ぐためには、入力データの検証を行うことが重要です。

例えば、int.Parseを使用する際に、TryParseメソッドを使うことで、変換が成功したかどうかを確認できます。

例:int.TryParse(input, out int result)

この方法を使うと、変換が成功した場合にのみ処理を続行し、失敗した場合にはエラーメッセージを表示するなどの対策を講じることができます。

配列のサイズを動的に変更するには?

C#の配列は固定サイズであるため、直接サイズを変更することはできません。

しかし、List<T>を使用することで、動的にサイズを変更できるコレクションを利用できます。

リストは要素の追加や削除が可能で、必要に応じて配列に変換することもできます。

例:List<int> numbers = new List<int>();

リストに要素を追加するには、Addメソッドを使用します。

最終的に配列が必要な場合は、ToArrayメソッドを使ってリストを配列に変換できます。

配列とリストの違いは何ですか?

配列とリストにはいくつかの違いがあります。

以下に主な違いを示します。

  • サイズ: 配列は固定サイズであり、宣言時にサイズを指定する必要があります。

一方、リストは動的にサイズを変更でき、要素の追加や削除が可能です。

  • パフォーマンス: 配列はメモリ効率が良く、要素へのアクセスが高速です。

リストは柔軟性がある分、メモリの再割り当てが発生する場合があり、パフォーマンスに影響を与えることがあります。

  • 機能: リストは、要素の追加、削除、検索などの便利なメソッドを多く提供しています。

配列は基本的なデータ構造であり、これらの操作を手動で実装する必要があります。

これらの違いを理解し、用途に応じて適切なデータ構造を選択することが重要です。

まとめ

この記事では、C#でコンソール入力から配列を作成する方法について、具体的な手順や実践例を通じて詳しく解説しました。

スペースやカンマ、改行で区切られた入力を処理する方法や、文字列配列や2次元配列の作成、リストと配列の変換といった応用例も紹介しました。

これらの知識を活用して、より柔軟で効率的なプログラムを作成するための第一歩を踏み出してみてください。

  • URLをコピーしました!
目次から探す