- 開発技術
【Java】数値をカンマ区切りに変換する方法をわかりやすく解説
- #Java
この記事を書いたチーム:frontier
前書き
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
数値を金額などでよく見かけるカンマ区切りの書式(下図例)に変換する実装方法を紹介したいと思います。
NumberFormat、DecimalFormat とString.formatの書式整形 formatの基本使い方3例を簡単に説明させていただきます。
開発言語はJavaです。
NumberFormatについて
【java.text.NumberFormat】とは、数値の既定フォーマット変換を行うクラスのことです。
カンマ区切り形式、通貨形式等の書式はよく使われるので、既にフォーマット形式が定義されています。そのため、簡単にフォーマット変換が行えます。
ソースコード実装例:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.text.NumberFormat; public class NumberFormatSample { public static void main(String args[]) { //NumberFormatインスタンスを生成 //3桁カンマ区切り形式 NumberFormat nfNum = NumberFormat.getNumberInstance(); //通貨形式 NumberFormat nfCur = NumberFormat.getCurrencyInstance(); //指定した値をフォーマットして表示する System.out.println(nfNum.format(12345.6789)); System.out.println(nfCur.format(99999.9999)); } } |
1 2 3 |
ターミナルの結果: 12,345.679 ¥100,000 |
DecimalFormatについて
【java.text.DecimalFormat】は、10進数を独自にフォーマット形式を作成するクラスです。
ソースコード実装例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import java.text.DecimalFormat; public class DecimalFormatSample { public static void main(String args[]) { //DecimalFormatインスタンスを生成 // カンマ区切り DecimalFormat df1 = new DecimalFormat("#,###"); // カンマ区切り + 小数点入り DecimalFormat df2 = new DecimalFormat("#,###.##"); // カンマ区切り + 桁の先頭にマイナス指定 DecimalFormat df3 = new DecimalFormat("#,###;-#,###"); // カンマ区切り + 末尾にマイナス指定 DecimalFormat df4 = new DecimalFormat("#,###;#,###-"); // カンマ区切り + 小数点 + 数値がない場合は0指定 DecimalFormat df5 = new DecimalFormat("00,000.00"); // カンマ区切り + パーセント表示 DecimalFormat df6 = new DecimalFormat("##0.00%"); //指定した値をフォーマットして表示する System.out.println(df1.format(1234567.89)); System.out.println(df2.format(123456789.5678)); System.out.println(df3.format(1234567.89)); System.out.println(df3.format(-1234567.89)); System.out.println(df4.format(1234567.89)); System.out.println(df4.format(-1234567.89)); System.out.println(df5.format(1234.5)); System.out.println(df6.format(0.56789)); } } |
1 2 3 4 5 6 7 8 9 |
ターミナルの結果: 1,234,567 123,456,789.57 1,234,568 -1,234,568 1,234,568 1,234,568- 01,234.50 56.79% |
String.formatについて
【String.format】とは、引数で指定された書式に文字列を整形して返却します。
String.format(書式, 整形する文字列)
書式 = % + 修飾文字(省略可) + 桁(省略可) + 型(必須)
ソースコード実装例:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class StringFormatSample { public static void main(String args[]) { //ゼロ埋めコード String. format("%04d", 11); //前に半角スペース埋めコード String.format("%4d", 11); //後ろに半角スペース埋めコード String.format("%-4d", 11); //3桁カンマコード埋めコード String.format("%,d", 1234567); } } |
1 2 3 4 5 |
ターミナルの結果: 0011 11 11 1,234,567 |
一番お勧めのは、DecimalFormatのお使いだと思います。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>