program study story

プログラムの勉強 アウトプット

C# 複合書式指定について_String.Format("{0}")

 String.Formatメソッドとは?

第1引数に指定した書式で第2引数以降のオブジェクトを変換して出力表示する。

using System.Windows;
 
namespace ConsoleApp1
{    
     class Program
    {
        static void Main(string[] args)
        {
           string format = String.Format("{0}", 10);
           Console.WriteLine(format);
        }
    }
}
 
書式内では中カッコ(「{ }」)とインデックス番号を使って記述します。
{index[,aligment][:formatString]}
これを複合書式指定と呼ぶ。
※[,aligment][:formatString]は省略可能。
 
indexは、第2引数以降のオブジェクトのインデックス番号を指定します。
 
aligmentについて
書式設定フィールドの幅を指定する。
 
FormatStringについて
書式指定子を指定する。
 
:書式内で文字として{}を使いたい場合
 
using System.Windows;
 
namespace ConsoleApp1
{    
     class Program
    {
        static void Main(string[] args)
        {
           string format = String.Format("{{{0}}}", 10);
           Console.WriteLine(format);
        }
    }
}
 
■ 書式指定子とは?
各書式指定子にフォーマットを変更する。
C#_書式指定子 一覧
-----------------------------------------------------------------------------------------

 指定子  呼び名    説明

 G    General    一般

 N    Number     数値

 F    Fixed-point    固定小数点

 E    Exponential   指数

 P    Percent    パーセント

 D    Decimal     10進数

 X    Hexadecimal   16進数の大文字

 x    Hexadecimal   16進数の小文字

 C    Currency    通貨

-----------------------------------------------------------------------------------------

■ カスタム書式指定子とは

数値を0埋めで出力したり、3桁で区切ることができる。

-----------------------------------------------------------------------------------------

C#_カスタム指定子 一覧
指定子   呼び名         説明
0     ゼロプレースホルダ   0埋めで出力

#     桁プレースホルダ    桁数の指定

,      桁区切り記号      3桁区切り

.      小数点         小数点以下の桁数を指定

%       パーセント       パーセント表示

;     セクション区切り記号   書式を複数指定する場合に区切りで使用

-----------------------------------------------------------------------------------------

using System;

namespace ConsoleApp1

{

     class Program
    {

        static void Main(string args)

        {

                string names = { "Adam", "Bridgette", "Carla", "Daniel",
                                                                 "Ebenezer", "Francine", "George" };
                decimal[] hours = { 40, 6.667m, 40.39m, 82, 40.333m, 80,16.75m };
                                                                                   

                Console.WriteLine("{0,-20} {1,5}\n", "Name", "Hours");
                for (int ctr = 0; ctr < names.Length; ctr++)
                Console.WriteLine("{0,-20} {1,5:N1}", names[ctr], hours[ctr]);

        }

    }

}