Java以外の言語だと、数値表示時の桁揃えや整形に FORMAT 命令がよく使われますが、Javaでは、これらの機能は、NumberFormat
クラスの具象クラスである、DecimalFormatクラス や ChoiceFormatクラス で実装されています。
実際のコードを載せた方が話が早いでしょう。
たとえば、「4桁以下の場合は4桁になるように、先頭に0を入れる」場合は、
java.text.*;
//255 を頭に0をつけて4桁にするコード
long sourceNumber = 255;
NumberFormat df = new DecimalFormat( "0000" );
//結果の文字列を表示
System.out.println( df.format( sourceNumber ));
|
というコードを書きます。
単純ですね。
new DecimalFormat( "0000" )
で指定している "0000" は「パターン」で、ここを変えると桁数を変えたり、区切り桁数を変えたり、小数点の切り捨てなど、いろいろなことができます。
例えば、 "#,#00.0#" を指定すると 1,234.56 のように表示されます。
これは、具体的には、最小 2 桁の整数、1 つの小数点、最大 2 桁の小数を意味します。(Java2 APIリファレンスより引用)
利用可能なパターンについては、Java2 APIリファレンスの「DecimalFormat」クラスの項で説明されていますので、ぜひ参照してください。
また、現在のロケールを意識するのであれば、ファクトリメソッドを利用して、以下のようなコードを書くこともできます。
java.text.*;
//255 を頭に0をつけて4桁にするコード
long sourceNumber = 255;
NumberFormat df = DecimalFormat.getInstance();
((DecimalFormat)df).applyLocalizedPattern( "0000"
);
//結果の文字列を表示
System.out.println( df.format( sourceNumber ));
|
注意すべき点としては、DecimalFormat クラスは、スーパークラスである NumberFormat クラスからファクトリメソッド
getInstance() を継承しているため、DecimalFormat.getInstance() メソッドは NumberFormat
型を返します。
しかし、パターン設定メソッド applyLocalizedPattern() は、具象クラスである DecimalFormat
クラスに属していますので、呼び出し時は DecimalFormat型にキャストして呼び出す必要があります。
|