JavaでのString.formatメソッドの使い方|基本から応用まで紹介

- システム
エンジニア - JavaでのString.formatを使用すると、どのようになるのでしょうか。
- プロジェクト
マネージャー - String.formatを使用すれば、様々なフォーマットの文字列を生成できます。
JavaのString.formatの使い方を紹介します!
今回は、JavaでのString.formatの使い方について説明します。String.formatを使用すれば、様々なフォーマットの文字列を生成できます。
ここでは基本的な使い方や、小数点の桁数指定、カンマ区切り、基数指定・0埋め、空白埋め、複数のformatに同一値を指定などの書き方について紹介します。
JavaでのString.formatの使い方に興味のある方はぜひご覧ください。
基本的な使い方とは
JavaでのString.formatの基本的な使い方を紹介します。
実際のソースコードを見てみましょう。
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
28
29
30
31
32
33
34
35
|
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Integer
Integer num1 = 10, num2 = 20;
String str = String.format(""num1:%d, num2:%d"", num1, num2);
System.out.println(str);
// Boolean
Boolean bool1 = true, bool2 = false;
str = String.format(""bool1:%b, bool2:%b"", bool1, bool2);
System.out.println(str);
// String
String str1 = ""string1"", str2 = ""string2"";
str = String.format(""str1:%b, str2:%b"", str1, str2);
System.out.println(str);
// char
char ch1 = 'a', ch2 = 'b';
str = String.format(""ch1:%c, ch2:%c"", ch1, ch2);
System.out.println(str);
// float
float float1 = 1.2f, float2 = 3.4f;
str = String.format(""float1:%f, float2:%f"", float1, float2);
System.out.println(str);
// Date
Date date = new Date();
str = String.format(""%tY/%tm/%td(%ta)"", date.getTime(), date.getTime(), date.getTime(), date.getTime());
System.out.println(str);
}
}
|
実行結果は以下のようになります。
1
2
3
4
5
6
|
num1:10, num2:20
bool1:true, bool2:false
str1:true, str2:true
ch1:a, ch2:b
float1:1.200000, float2:3.400000
2020/10/10(Sat)
|
このように、様々なformatを指定できます。
小数点の桁数指定
JavaでのString.formatを使った、小数点の桁数指定について紹介します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class Main {
public static void main(String[] args) throws Exception {
float val = 12.3456f;
// 四捨五入されて指定の桁数になる
String str = String.format(""%.1f"", val); // 12.3
System.out.println(str);
str = String.format(""%.2f"", val); // 12.35
System.out.println(str);
str = String.format(""%.3f"", val); // 12.346
System.out.println(str);
}
}
|
実行結果は以下のようになります。
1
2
3
|
12.3
12.35
12.346
|
指定した桁数までで四捨五入されていることが分かります。
カンマ区切り
JavaでのString.formatを使った、カンマ区切り文字列の生成方法について紹介します。formatに””%,d””と指定することで、3桁区切りの文字列になります。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
|
public class Main {
public static void main(String[] args) throws Exception {
Integer num = 123456789;
// カンマ区切りで3桁にする
String str = String.format(""%,d"", num);
System.out.println(str); // 123,456,789
}
}
|
実行結果は以下のようになります。
1
|
123,456,789
|
このように、Javaではカンマ区切り文字列を生成できます。
基数指定
JavaでのString.formatを使った、基数指定の方法について紹介します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class Main {
public static void main(String[] args) throws Exception {
Integer num = 10;
String str = String.format(""10進数:%d"", num);
System.out.println(str); // 10
str = String.format("" 8進数:%o"", num);
System.out.println(str); // 12
str = String.format(""16進数:%x"", num);
System.out.println(str); // a
}
}
|
実行結果は以下のようになります。
1
2
3
|
10進数:10
8進数:12
16進数:a
|
8進数は%o、16進数は%xを指定します。2進数については、String.formatでは出力できません。
0埋め・空白埋め
JavaでのString.formatを使った、0埋め・空白埋めの方法について紹介します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
|
public class Main {
public static void main(String[] args) throws Exception {
Integer num = 10;
String str = String.format("" 0埋め[%05d]"", num);
System.out.println(str); // 00010
str = String.format(""空白埋め[%5d]"", num);
System.out.println(str); // 10
}
}
|
実行結果は以下のようになります。
1
2
|
0埋め[00010]
空白埋め[ 10]
|
このように、Javaでは0埋め・空白埋めの文字列を生成できます。
複数のformatに同一値を指定
Javaでは、複数のformatに同一値を指定することもできます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Date date = new Date();
// 通常の指定
String str = String.format(""%tY/%tm/%td(%ta)"", date.getTime(), date.getTime(), date.getTime(), date.getTime());
System.out.println(str);
// 絶対インデックスでの指定
str = String.format(""%1$tY/%1$tm/%1$td(%1$ta)"", date.getTime());
System.out.println(str);
// 相対指定
str = String.format(""%tY/%<tm/%<td(%<ta)"", date.getTime());
System.out.println(str);
}
}
|
実行結果は以下のようになります。
1
2
3
|
2020/10/10(Sat)
2020/10/10(Sat)
2020/10/10(Sat)
|
第2引数に1つしか値を指定していませんが、文字列が生成できています。
- システム
エンジニア - JavaでのString.formatの使い方が理解できました。
- プロジェクト
マネージャー - より理解を深めるために、実際にソースコードを書いてみましょう。
まとめ
いかがでしたでしょうか。JavaでのString.formatの使い方について説明しました。String.formatを使用すれば、様々なフォーマットの文字列を生成できます。
ぜひご自身でソースコードを書いて、理解を深めてください。
FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


Java新着案件New Job
-
官公庁向け業務システム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給39万~44万円東京都千代田区(永田町駅) -
販売管理システム開発/Java/東京都中央区/【WEB面談可】/テレワーク
月給49万~55万円東京都中央区(京橋駅) -
生命保険会社向けシステム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給42万~48万円東京都千代田区(大手町駅) -
社会保険システムのパッケージ開発/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(新橋駅) -
金融機関向けシステム更改/Java/東京都江東区/【WEB面談可】/テレワーク
月給46万~51万円東京都江東区(豊洲駅) -
大手通信会社者向けWebシステム改修/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(品川駅)