C# - 文字列の書式指定
引用符の左に@をつけた文字リテラルはエスケープ文字をそのまま出力する。またC#6以降では$を付けて文字列中の変数展開が可能みたいですが、今の実行環境ではエラーの為コメントにしてます。
文字列中への変数の埋め込みは{ }の中で書式を指定することで行う。出力する場合は、Console.Write()等の引数として、string値を得る場合は、Srting.Format()の引数として指定する。
書式の指定は以下の形式になる。
{ i , aa : Cbb}
- i : 変数の指定
- aa : 表示長および寄せ方向の指定
- C : 書式種類の指定
- bb : 書式での桁数の指定
using System; //文字列の書式指定 class MyMain { static void Main(string[] args) { // //文字列リテラル // //通常 Console.WriteLine("通常出力 : Hello\nWorld"); //"の表示 Console.WriteLine("\"表示"); //エスケープの無効化 Console.WriteLine(@"エスケープ無効 : Hello\nWorld"); //"の表示 Console.WriteLine(@"""表示"); // //変数の埋め込み // string s1 = "abc"; string s2 = "def"; string s; Console.WriteLine("変数埋込み : s1 = {0}, s2 = {1}", s1, s2); //C# 6以降 //Console.WriteLine($"変数埋込み : s1 = {s1}, s2 = {s2}"); //指定した書式の文字列生成 s = String.Format("変数埋込み : s1 = {0}, s2 = {1}", s1, s2); Console.WriteLine(s); // {}の表示 Console.WriteLine("{}の表示"); // {n}の表示 Console.WriteLine("{{0}}は{0}に置き換えられる", s1); //右寄せ Console.WriteLine("10桁右寄せ : s1 = [{0,10}]", s1);//[ abc] //左寄せ Console.WriteLine("10桁左寄せ : s1 = [{0,-10}]", s1);//[abc ] int d1 = 123; Console.WriteLine("通常 : {0}", d1);//123 Console.WriteLine("通常(G指定) : {0:G}", d1);//123 Console.WriteLine("10進桁指定 : {0:D4}", d1);//0123 Console.WriteLine("16進 : {0:X}", d1);//7B Console.WriteLine("16進4桁 : {0:X4}", d1);//007B int d2 = 12345; Console.WriteLine("3桁区切り : {0:N}", d2);//12,345.00 Console.WriteLine("3桁区切り : {0:N0}", d2);//12,345 Console.WriteLine("通貨 : {0:C}", d2);//\12,345 double f1 = 4.56789; Console.WriteLine("通常 : {0}", f1);//4.56789 Console.WriteLine("通常(G指定) : {0:G}", f1);//4.56789 Console.WriteLine("固定小数点 : {0:F}", f1);//4.57 Console.WriteLine("固定小数点(4桁): {0:F4}", f1);//4.5679 Console.WriteLine("指数表示 : {0:E}", f1);//4.567890E+000 Console.WriteLine("指数表示(4桁) : {0:E4}", f1);//4.5679E+000 double f2 = 0.9; Console.WriteLine("パーセント : {0:P}", f2);//90.00% } }