Javaのprintfなどの書式(format)説明は分かりにくい

 

C言語を使っていた経験があれば、Javaの習得はかなり短期間で
済むと思います。また、Javaから始めても、あとでC言語を学ぶのが
楽になるでしょう。

毎度、管理人イガジーです。

デバッグなどでもよく使う System.out.printf()の書式(format)は
C言語とほぼ同じだと思っているのですが、Javaのドキュメントには
どう書かれているかを探してみると、Formatterクラス にありました。

しかし、ある程度知っている管理人イガジーが見ても、よくわかりません。
とても難しい書き方になっている感じです。

簡単に書けば、”%d” で10進数表示、”%x”で16進表示です。
16進数の場合は、”%X”とするとA-F が大文字になります。
(”%x”なら a-f と小文字。このドキュメントを見るまで知らなかったのですが、
“%h”, “%H”でも16進数表示になるのですね。)

“%4d” というように数字を入れると、指定の桁数(4桁)になるように
右詰めになります。(即ち、空白でパディングされます。)
“%04d”と、0(ゼロ)付きにすると、0でパディングされます。

説明を読むより、実際に動かしてみるのが早いでしょうから
サンプルプログラムを書いておきます。

public class Formats {
	String fmt[]={
		"%d\n",
		"%4d\n",
		"%04d\n",
		"%x\n",
		"%4x\n",
		"%04x\n",
		"%X ",
		"%h ",
		"%H\n"
	};

	Formats(){
		int a=123;
		for (int i=0;i<fmt.length;++i) {
			System.out.printf(fmt[i], a);
		}
	}
	public static void main(String[] args) {
		new Formats();
	}

}

↑を実行すると

123
 123
0123
7b
  7b
007b
7B 7b 7B

となります。

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)