数字表記の方法(桁区切り,符号,0埋め,空白埋めなど)

数値の桁数制限や小数点、3桁区切りのカンマなどの数値表現の表示形式に関するJavaサンプル集です。

Home > サンプル集 > Javaサンプル集 > 数値の文字列フォーマット変換


数値の文字列フォーマット変換

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. 数字の先頭を0で埋める ( Sample2_1.java )  
  2. 数字の先頭を空白で埋める ( Sample2_2.java )  
  3. 符号付数値 ( Sample2_3.java )  
  4. 負数を括弧付きで表示する ( Sample2_4.java )  
  5. 数字3桁ごとにカンマで区切る ( Sample2_5.java )  
  6. 浮動小数点の表示 ( Sample2_6.java )  
  7. 16進数の表示  
  8. 8進数の表示  

Javaでは、数値や日付、時刻などの表示形式を制御することが出来ます。たとえば数値の場合、表示桁数を制限したり 表示する数値の先頭を0で埋めたり3桁ごとに「,」(カンマ)で区切ったり出来ます。 このページでは、数値の書式設定のサンプルを掲載します。

1. 数字の先頭を0で埋める

[ サンプルプログラムのソースコード - Sample2_1.java - ]
  1. package sample.sample2;
  2. public class Sample2_1 {
  3.   public static void main(String[] args) {
  4.     System.out.println(String.format("3桁の数字(先頭0埋め):%1$03d", 1));
  5.     System.out.println(String.format("3桁の数字(先頭0埋め):%1$03d", 123));
  6.     System.out.println(String.format("3桁の数字(先頭0埋め):%1$03d", 12345));
  7.    }
  8. }
[ サンプルプログラムの実行結果 ]
3桁の数字(先頭0埋め):001
3桁の数字(先頭0埋め):123
3桁の数字(先頭0埋め):12345
[ サンプルプログラムの解説 ]
書式指定「d」で、数値データを10進数の数値として表現します。 「d」の前に「03」と付いていますが、3の部分は最小桁数を表しています。 上記の場合は、最小桁数3桁となります。0の部分はフラグといいます。 フラグが0のときは、最小桁数に足りない桁数のとき先頭から不足分を0で埋めていくことを表しています。 9行目の場合は、数値データが「1」なので3桁には2桁足りません。先頭から2桁分0で埋められています。 10行目、11行目のように数値データの桁数が最小桁数以上の場合は、先頭に0は付きません。


2. 数字の先頭を空白で埋める

[ サンプルプログラムのソースコード - Sample2_2.java - ]
  1. package sample.sample2;
  2. public class Sample2_2 {
  3.   public static void main(String[] args) {
  4.     System.out.println(String.format("3桁の数字(先頭空白埋め):%1$3d", 1));
  5.     System.out.println(String.format("3桁の数字(先頭空白埋め):%1$3d", 123));
  6.     System.out.println(String.format("3桁の数字(先頭空白埋め):%1$3d", 12345));
  7.    }
  8. }
[ サンプルプログラムの実行結果 ]
3桁の数字(先頭空白埋め):  1
3桁の数字(先頭空白埋め):123
3桁の数字(先頭空白埋め):12345
[ サンプルプログラムの解説 ]
Sample2_1のようにフラグを0にすると不足桁数分先頭から0が埋められていましたが、フラグを省略した場合、 不足桁に0ではなく空白が埋められます。Sample2_1と同じく最小桁数以上ある場合は、先頭に空白は追加されません。


3. 符号付数値

[ サンプルプログラムのソースコード - Sample2_3.java - ]
  1. package sample.sample2;
  2. public class Sample2_3 {
  3.   public static void main(String[] args) {
  4.     System.out.println(String.format("3桁の数字(符号付き):%1$+3d", 1));
  5.     System.out.println(String.format("3桁の数字(符号付き):%1$+3d", 123));
  6.     System.out.println(String.format("3桁の数字(符号付き):%1$+3d", 12345));
  7.     System.out.println(String.format("3桁の数字(符号付き):%1$+3d", -1));
  8.     System.out.println(String.format("3桁の数字(符号付き):%1$+3d", -123));
  9.     System.out.println(String.format("3桁の数字(符号付き):%1$+3d", -12345));
  10.    }
  11. }
[ サンプルプログラムの実行結果 ]
3桁の数字(符号付き): +1
3桁の数字(符号付き):+123
3桁の数字(符号付き):+12345
3桁の数字(符号付き): -1
3桁の数字(符号付き):-123
3桁の数字(符号付き):-12345
[ サンプルプログラムの解説 ]
フラグに「+」を指定しています。この場合、数値データを符号付きで表現します。


4. 負数を括弧付きで表示する

[ サンプルプログラムのソースコード - Sample2_4.java - ]
  1. package sample.sample2;
  2. public class Sample2_4 {
  3.   public static void main(String[] args) {
  4.     System.out.println(String.format("3桁の数字(符号付き):%1$(3d", 1));
  5.     System.out.println(String.format("3桁の数字(符号付き):%1$(3d", 123));
  6.     System.out.println(String.format("3桁の数字(符号付き):%1$(3d", 12345));
  7.     System.out.println(String.format("3桁の数字(符号付き):%1$(3d", -1));
  8.     System.out.println(String.format("3桁の数字(符号付き):%1$(3d", -123));
  9.     System.out.println(String.format("3桁の数字(符号付き):%1$(3d", -12345));
  10.   }
  11. }
[ サンプルプログラムの実行結果 ]
3桁の数字(符号付き):  1
3桁の数字(符号付き):123
3桁の数字(符号付き):12345
3桁の数字(符号付き):(1)
3桁の数字(符号付き):(123)
3桁の数字(符号付き):(12345)
[ サンプルプログラムの解説 ]
フラグに「(」を指定した場合、負の数値を括弧「()」付きで表現します。 正の数値の場合、最小桁数の不足部分に空白を埋めて数値データを表現します。


5. 数字3桁ごとにカンマで区切る

[ サンプルプログラムのソースコード - Sample2_5.java - ]
  1. package sample.sample2;
  2. public class Sample2_5 {
  3.   public static void main(String[] args) {
  4.     System.out.println(String.format("3桁の数字(3桁区切り文字):%1$,3d", 1));
  5.     System.out.println(String.format("3桁の数字(3桁区切り文字):%1$,3d", 123));
  6.     System.out.println(String.format("3桁の数字(3桁区切り文字):%1$,3d", 12345));
  7.     System.out.println(String.format("3桁の数字(3桁区切り文字):%1$,3d", -1));
  8.     System.out.println(String.format("3桁の数字(3桁区切り文字):%1$,3d", -123));
  9.     System.out.println(String.format("3桁の数字(3桁区切り文字):%1$,3d", -12345));
  10.   }
  11. }
[ サンプルプログラムの実行結果 ]
3桁の数字(3桁区切り文字):  1
3桁の数字(3桁区切り文字):123
3桁の数字(3桁区切り文字):12,345
3桁の数字(3桁区切り文字): -1
3桁の数字(3桁区切り文字):-123
3桁の数字(3桁区切り文字):-12,345
[ サンプルプログラムの解説 ]
フラグがカンマ「,」の場合、数値データを3桁ごとにカンマ「,」で区切ります。 正の数値は、最小桁数不足分に空白を付加します。負の数値は、 数値の前にマイナス「-」を付加してさらに最小桁数不足分に空白を追加します。


6. 浮動小数点の表示

[ サンプルプログラムのソースコード - Sample2_6.java - ]
  1. package sample.sample2;
  2. public class Sample2_6 {
  3.   public static void main(String[] args) {
  4.     System.out.println(String.format("浮動小数点の表示:%1$3e", Math.PI));
  5.     System.out.println(String.format("浮動小数点の表示:%1$3f", Math.PI));
  6.     System.out.println(String.format("浮動小数点の表示:%1$3g", Math.PI));
  7.     System.out.println(String.format("浮動小数点の表示:%1$3a", Math.PI));
  8.    }
  9. }
[ サンプルプログラムの実行結果 ]
浮動小数点の表示:3.141593e+00
浮動小数点の表示:3.141593
浮動小数点の表示:3.14159
浮動小数点の表示:0x1.921fb54442d18p1
[ サンプルプログラムの解説 ]
フラグが「e」の場合、浮動小数点表示形式の 10 進数として表示されます。
フラグが「f」の場合、浮動小数点表示形式の 10 進数として表示されます。
フラグが「g」の場合、四捨五入処理後の精度および値に応じて浮動小数点表示形式または 10 進数書式で表示されます。
フラグが「a」の場合、有効数字および指数を持つ浮動小数点数として表示されます。



7. 16進数の表示

[ サンプルプログラムのソースコード - Sample2_7.java - ]
  1. package sample.sample2;
  2. public class Sample2_7 {
  3.   public static void main(String[] args) {
  4.     System.out.println("16進数の表示");
  5.     System.out.println(String.format("16進表記 : %1$x", 123));
  6.     System.out.println(String.format("16進表記 : %1$X", 1024));
  7.     System.out.println(String.format("16進表記  : %1$x", 0xff));
  8.     System.out.println(String.format("16進表記  : %1$x", 010));
  9.   }
  10. }
[ サンプルプログラムの実行結果 ]
16進数の表示
16進表記 : 7b
16進表記 : 400
16進表記  : ff
16進表記  : 8
[ サンプルプログラムの解説 ]
フラグが「x」または、「X」の場合、16進数として表示されます。

8. 8進数の表示

[ サンプルプログラムのソースコード - Sample2_8.java - ]
  1. package sample.sample2;
  2. public class Sample2_8 {
  3.   public static void main(String[] args) {
  4.     System.out.println("8進数の表示");
  5.     System.out.println(String.format("8進表記 : %1$o", 123));
  6.     System.out.println(String.format("8進表記 : %1$o", 1024));
  7.     System.out.println(String.format("8進表記 : %1$o", 0xff));
  8.     System.out.println(String.format("8進表記 : %1$o", 010));
  9.   }
  10. }
[ サンプルプログラムの実行結果 ]
8進数の表示
8進表記 : 173
8進表記 : 2000
8進表記  : 377
8進表記  : 10
[ サンプルプログラムの解説 ]
フラグが「o」の場合、8進数として表示されます。



最終更新日:2019/02/13

2015-03-01からの訪問者数
  4785 人