2015/04/19

java Strings.format 特殊文字

書式 説明
% 指定を開始する。「%」自身を出力したい場合は「%%」とする。 printf("%%%n"); %
d 整数を十進数で出力する。(nullの時は「null」) printf("%d%n", 123); 123
o 整数を八進数で出力する。(nullの時は「null」) printf("%o%n", 123); 173
x 整数を十六進数で出力する。(nullの時は「null」) printf("%x%n", 123); 7b
c 文字を出力する。(nullの時は「null」) printf("%c%n", 'x'); x
s 文字列を出力する。(nullの時は「null」)
toString()あるいはFormattableで文字列に変換される)
printf("%s%n", "xyz"); xyz
- 左詰で出力する(省略時は右詰)。 printf("[%-4d]%n", 123);
printf("[%-4s]%n", "xyz");
[123 ]
[xyz ]
0 足りない桁数を0埋めする。
数値系(%d,%o,%x)で使用可能。[2009-10-21]
他(例えば%s,%b,%h)では使用不可(例外が発生する)。
printf("%04d%n", 123);
printf("%04x%n", 123);
0123
007b
# 代替フォームで変換する。
すなわち、「%o」において頭に「0」を、「%x」において頭に「0x」を付けて出力する。
%s」の場合はデフォルトでは特に何も無さそう。「%d」では例外が発生する。
printf("%#o%n", 123);
printf("%#x%n", 123);
printf("%#s%n", 123);
0173
0x7b
123
桁数(最小フィールド幅)を指定する。
最低限確保される桁数であり、この数値以上の桁の値は全部出力される。
%s(文字列)の場合は、文字数である
printf("[%4d]%n", 123);
printf("[%4s]%n", "xyz");
printf("[%4s]%n", "xyzab");
printf("[%4s]%n", "あいう");
[ 123]
[ xyz]
[xyzab]
[ あいう]
.数 精度(最大表示幅)を指定する。
この桁数より大きい場合は切り捨てられ、出力されない。
%s(文字列)の場合は、文字数である
printf("[%.4s]%n", "xyzab");
printf("[%5.4s]%n", "xyzab");
printf("[%-5.4s]%n", "xyzab");
printf("[%-5.4s]%n", "あいうえお");
[xyza]
[ xyza]
[xyza ]
[あいうえ ]
数$ 引数の番号を指定する(値の引数のうち、一番左が1)。
通常これは省略されており、その場合は引数の並び順に従って値が出力される。
C言語とJavaの違い
printf("%d:%d:%d%n",11,22,33);
printf("%1$d:%2$d:%3$d%n",11,22,33);
printf("%3$d:%2$d:%1$d%n",11,22,33);
printf("%3$d:%1$d:%d%n",11,22,33);
11:22:33
11:22:33
33:22:11
33:11:11