スライドショー

【C#入門】String.Formatで書式指定子の使い方(0埋め、桁数指定など)

String.Formatメソッドって使ってますか?

String.Formatメソッドで書式を指定することで、指定した書式で出力表示することができます。書式が指定できるので、出力結果が読みやすくなります。

この記事では、String.Formatメソッドについて

  • String.Formatメソッドとは
  • 書式指定子とは
  • カスタム書式指定子とは
  • 0埋めで表示する方法
  • 小数点以下の桁数を指定する方法
  • 3桁区切りで表示する方法
  • ¥マークを付ける方法
  • %表示する方法
  • 複数の文字列を連結する方法

など基本的な内容から、具体的な使い方の内容についても解説していきます。

今回はString.Formatメソッドについて、使い方をわかりやすく解説します!

String.Format メソッド とは

String.FormatメソッドはStringクラスメソッドの1つで、第1引数に指定した書式で第2引数以降のオブジェクトを変換して出力表示します

String.Format("書式", オブジェクト0, オブジェクト1, ・・・);

書式内ではオブジェクト「{ }」(中カッコ)とインデックス番号を使って記述します。

{index[,alignment][:formatString]}

これを複合書式指定と呼びます。

「[ ]」内は省略可能です。

indexは第2引数以降のオブジェクトのインデックス番号を指定します。alignmentでは、書式設定フィールドの幅を指定します。

正の値であれば右揃え、負の値であれば左揃えで出力されます。指定した値の桁数、文字数で出力されます。

formatStringでは、書式指定子を指定します。書式指定子については後ほど解説します。

例:

String.Format("{0, -5:G}, {1:G3}, {2:N1}", 10, 12345, 12.345);

中カッコ{ }のエスケープ

複合書式指定には「{ }」(中カッコ)を使うとお伝えしました。

では書式内で文字として「{ }」(中カッコ)を使いたい場合はどのようにしたらよいのでしょうか?

その場合は中カッコを続けて記述します。

例:

String.Format("{{{0}}}", 10);

書式指定子とは

それでは、書式指定子について表にまとめてみました。

指定子説明
G一般(General)
N数値(Number)
F固定小数点数(Fixed-point)
E指数(Exponential)
Pパーセント(Percent)
D10進数(Decimal)
X16進数の大文字(Hexadecimal)
x16進数の小文字(Hexadecimal)
C通貨(Currency)

カスタム書式指定子とは

カスタム書式指定子を使うと数値を0埋めで出力したり、3桁で区切ることができます。

これも表にまとめてみました。

指定子呼び名説明
0ゼロプレースホルダ0埋めで出力
#桁プレースホルダ桁数の指定
,桁区切り記号3桁区切り
.小数点小数点以下の桁数を指定
%パーセントパーセント表示
;セクション区切り記号書式を複数指定する場合に区切りで使用

0埋めで表示する方法

0埋めで表示する方法についてサンプルコードで確認しましょう。

0埋めしたい桁数分だけ0を並べます。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      int num = 10;
      Console.WriteLine(String.Format("{0:00000}", num));
      
      Console.ReadKey();
    }
  }
}

実行結果:

00010

小数点以下の桁数を指定する方法

小数点以下の桁数を指定する方法についてサンプルコードで確認しましょう。

表示したい桁数分だけ#を並べます。

小数点以下の場合、指定した桁数より以下は四捨五入されます。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      double num = 12.345;
      Console.WriteLine(String.Format("{0:#}, {0:#.##}", num));
      
      Console.ReadKey();
    }
  }
}

実行結果:

12, 12.35

3桁区切りで表示する方法

3桁区切りで表示する方法についてサンプルコードで確認しましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      double num = 123456789;
      Console.WriteLine(String.Format("{0:#,0}", num));
      
      Console.ReadKey();
    }
  }
}

実行結果:

123,456,789

¥マークを付ける方法

¥マークを付ける方法についてサンプルコードで確認しましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      double num = 123456789;
      Console.WriteLine(String.Format("{0:C}", num));
      
      Console.ReadKey();
    }
  }
}

実行結果:

\123,456,789

%表示する方法

%表示する方法についてサンプルコードで確認しましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      double num = 0.1234;
      Console.WriteLine(String.Format("{0:P}", num));
      
      Console.ReadKey();
    }
  }
}

実行結果:

12.34 %

複数の文字列を連結する方法

複数の文字列を連結する方法についてサンプルコードで確認しましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str1 = "侍";
      string str2 = "塾";
      Console.WriteLine(String.Format("{0}エンジニア{1}", str1, str2));
      
      Console.ReadKey();
    }
  }
}

実行結果:

侍エンジニア塾

まとめ

ここでは、StringクラスのFormatメソッドについて説明しました。今回お伝えした書式指定子、カスタム書式指定子はToStringメソッドやConsole.WriteLineメソッドでも同じように使えます。

出力形式を読みやすくすることができますので、使いこなすことができるように、この記事を何度も参考にして下さいね!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]