|
.NET TIPS 数値を右詰めや0埋めで文字列化するには?[C#、VB]デジタルアドバンテージ 遠藤 孝信2004/01/30 2008/07/10 更新 |
![]() |
|
|
|
数値をファイルや帳票に出力する際には、文字列の幅を固定し右詰めにしたり、0埋めで出力したりしたい場合がある。このような用途には、Stringクラス(System名前空間)のFormatメソッドを使うのが簡単だ。
Formatメソッドでは、書式を指定する「書式指定文字列」と、それに対応するオブジェクトを引数で指定する。本稿では、よく用いられるであろう整数値の文字列化に絞って解説する。
Formatメソッドによる文字列への値の埋め込み
数値の書式指定を解説する前に、Formatメソッドの基本的な用法について触れておく。Formatメソッドがよく用いられるのは、次のように文字列中に変数の値を埋め込む場合だ。
| ||
| Formatメソッドの記述例(上:C#、下:VB) |
ここで、Formatメソッドの第1引数に指定した文字列が書式指定文字列であり、これには通常の文字列中に{0}や{1}などの「書式指定項目」が挿入されている。
書式指定項目とは、0から始まるインデックス番号を中カッコで囲んで記述したものだ。書式指定項目部分は、インデックス番号に対応した、第2引数以降のオブジェクトを文字列化*したもので置き換えられる。上記の例では、文字列strの内容は「鈴木さん、今日は1月30日です」となる。
| * すべてのオブジェクトは、そのToStringメソッドを呼び出すことにより文字列化できる。 |
数値の書式指定
数値を書式指定して文字列にする場合は、書式指定項目にいくつかのパラメータを追加して記述できる。次の表は、よく使用される4つの場合について、書式指定項目の記述例をまとめたものだ。
| |||||||||||||||
| 数値の書式指定でよく使用される書式指定項目の記述例 | |||||||||||||||
この表の最初の2つの書式は、生成される文字列の幅を指定する場合である。これは、書式指定項目内のインデックス番号の後にコンマ(,)で区切って文字列の幅を整数で指定する。負の値を指定した場合には、文字列は左詰めとなる。
表中の3つ目の書式は、数値を0埋めで文字列化する場合である。これには2つの記述方法がある。
1つは、
{0:D4}
のように、インデックス番号の後にコロン(:)で区切って、10進数(Decimal)を表す書式指定子「D」と、文字列の幅を表す整数(この例では「4」)を指定する。この記述は「標準数値書式指定文字列」と呼ばれるもので、詳細についてはMSDNの「標準の数値書式指定文字列」の項を参照していただきたい。ちなみに、「D」の代わりに「X」を指定すると、16進数文字列に変換される(小文字の「x」の場合は16進数文字列も小文字となる)。
0埋めの場合のもう1つの記述例である、
{0:0000}
は、インデックス番号の後にコロン(:)で区切って「ゼロ・プレースホルダ」と呼ばれる書式指定文字「0」を文字列の幅の数だけ並べて記述する方法だ。こちらについての詳細は、MSDNの「カスタム数値書式指定文字列」を参照していただきたい。
表中の最後の書式は、文字列の幅の指定し、かつ0埋めで文字列化する場合の記述である。書式指定項目の正式な構文は、
| |
| 書式指定項目の正式な構文 |
であるが、「文字列の幅」と「書式指定子」は省略可能である。
Formatメソッドを利用したサンプル・プログラム
次に、Formatメソッドを利用したサンプル・プログラムを示しておく。
| |
| Formatメソッドを利用したC#のサンプル・プログラム(formatint.cs) | |
| |
| Formatメソッドを利用したVBのサンプル・プログラム(formatint.vb) | |
プログラム中の「例2」で示しているように、生成された文字列をコンソールに出力する場合には、Consoleクラス(System名前空間)のWriteLineメソッドでも書式指定文字列を利用できる。
また、「例4」で示しているように、書式指定文字列には同じインデックス番号を持つ書式指定項目を複数個記述することもできる。![]()
| カテゴリ:クラス・ライブラリ 処理対象:文字列 使用ライブラリ:Stringクラス(System名前空間) 使用ライブラリ:Consoleクラス(System名前空間) |
|
||||||||||||||||||||||||||||
| 更新履歴 | |
|
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


