Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

formatメソッド

文字列を整形する – formatメソッド
public static String format([Locale locale,] String format, Object… args)
locale:整形に利用するロケール(省略時はシステムデフォルト)
format:書式文字列
args:書式に割り当てる値

formatメソッドを利用することで、文字列を指定された書式文字列で整形できます(※)。書式文字列は「%[インデックス$][フラグ][幅][.精度]型」の形式で指定します。

※整形された文字列をそのまま出力するならば、System.out.printfメソッドも利用できます。
書式文字列の構成要素
指定子 概要
インデックス 引数リスト内での引数の位置
フラグ 出力形式を指定
出力する最小の文字数
精度 全体桁数(整数)、または小数点以下の桁数(浮動小数点数)
値の型

「型」として利用できる値には、以下のようなものがあります。大文字/小文字とあるものは、大文字の場合に結果が大文字変換されたものが返されます。

formatメソッドで利用できる主なデータ型
概要
b、B ブール値
h、H ハッシュコードを16進数に変換
s、S 文字列
c、C Unicode文字
d 10進整数
o 8進整数
x、X 16進整数
e、E 浮動小数点数形式の10進数
f 10進小数点数
t、T 日付/時刻変換文字の接頭辞
% リテラル’%’(u0025)
n プラットフォーム固有の行区切り文字

以下は、主なデータ型について、具体的な例と結果を触れていきます。

文字列

「%7s」で出力される最大文字数、「%.4s」で最小文字数を指定できます。

StrFormat.java(抜粋)

String str = "samples";
System.out.println(String.format("値は「%10s」です。", str));
	// 結果:値は「   samples」です。
System.out.println(String.format("値は「%-10s」です。", str));
	// 結果:値は「samples   」です。
System.out.println(String.format("値は「%.2s」です。", str));
	// 結果:値は「sa」です。
StrFormat2.java(抜粋)

浮動小数点数では、以下のような形式で表示を指定できます。

StrFormat.java(抜粋)

double num = 1.23456;
System.out.println(String.format("値は「%e」です。", num));
	// 結果:値は「1.234560e+00」です。
System.out.println(String.format("値は「%E」です。", num));
	// 結果:値は「1.234560E+00」です。
System.out.println(String.format("値は「%f」です。", num));
	// 結果:値は「1.234560」です。
System.out.println(String.format("値は「%.3f」です。", num));
	// 結果:値は「1.235」です。
日付/時刻

日付/時刻を整形する「t」はそれ単体では意味がありませんので、後方に日付/時刻書式を指定しなければなりません。主な日付/時刻書式は、以下の通りです。

日付/時刻の書式
書式 概要
Y 年(4桁)
m 月(01~12)
d 日(01~31)
H 時(00~23)
I 時(01~12)
M 分(00~59)
S 秒(00~59)
L ミリ秒(000~999)
D 日付(%tm/%td/%tyと同じ)
T 時刻(%tH:%tM:%tSと同じ)

以下に具体的な例を挙げていきます。

StrFormat3.java(抜粋)

Date c = new Date();
System.out.println(String.format("%tY年 %tm月 %td日", c, c, c));
	// 結果:2016年 08月 19日
System.out.println(String.format("%tH時 %tM分 %tS秒", c, c, c));
	// 結果:14時 23分 36秒
文字列
文字列
length/codePointCountメソッド
isEmptyメソッド
charAtメソッド
indexOf/lastIndexOfメソッド
equals/equalsIgnoreCaseメソッド
regionMatchesメソッド
compareTo/compareToIgnoreCaseメソッド
trimメソッド
startsWith/endsWithメソッド
toLowerCase/toUpperCaseメソッド
substringメソッド
replaceメソッド
splitメソッド
joinメソッド
formatメソッド
appendメソッド

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職