C#で同じ文字が連続する文字列を作る

C#で文字列操作をしていると、スペースを10文字分とかハイフンを20文字分とかいう文字列を既存の文字列に足すという場面が出てきたりします。ということで、そんな文字列を作ってみました。

目次

  1. 同じ文字を繰り返すならループで作れば良いよね
  2. 同じ文字を繰り返す文字列を作るクラスがある
  3. 試してみた
    1. コード
    2. 動かしてみた
  4. 試してみた(その2)
    1. コード
    2. 動かしてみた

同じ文字を繰り返すならループで作れば良いよね

繰り返す文字と、繰り返しの数はわかっているのです。であれば、まず思いつくのはforループです。

using System;

namespace string_trial
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "";
            for (int i=0; i<10; i++)
            {
                text = text + "-";
            }

            Console.WriteLine(text);
        }
    }
}

実行結果はこうなります。ハイフンを10個続けた文字列が出力されます。 160503-2-01 単純ですけど、単純な文字列を作るためだけにループが回るってのは、何かもったいないですね。

同じ文字を繰り返す文字列を作るクラスがある

Stringクラスのコンストラクタを使うと、同じ文字を繰り返す文字列を簡単に作れます。 Stringクラスにはいくつかコンストラクタがありますが、今回使うコンストラクタは下記です。

string text = new String(c, count);

引数

内容

c

char

繰り返すUnicode文字。

count

int

繰り返す回数。

戻り値はstring型のインスタンスです。

試してみた

ハイフンを10個連続した文字列を作って出力するアプリを作ってみます。

コード

using System;

namespace string_trial
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = new String('-', 10);

            Console.WriteLine(text);
        }
    }
}

動かしてみた

出力結果はforループを使った場合と同じです。 160503-2-01 ループを使って文字列を作るよりも、簡単ですね。

試してみた(その2)

引数がUnicode文字ということは、日本語も通るのかな?

コード

using System;

namespace string_trial
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = new String('あ', 10);

            Console.WriteLine(text);
        }
    }
}

動かしてみた

通った。 160503-2-02 試した環境は下記です。

  • Visual Studio 2015 Express for Windows Desktop

公開日

広告