Java:printf書式で指定してデータを文字列にするString.format

   2012/05/08

こんちは、管理人イガジーです。
JavaとC言語は似ていますが、細かい所で違う部分もありますね。

C言語では、printf という、書式付き出力関数があります。
printf(“val=%d (hex=%x) %c\n”,x,x,x);
という形で使います。
%d が10進数、%x が16進数、%c が文字としての表示指定になります。
例えば x が 65 の時、上記printfの結果は
val=64 (hex=41) A
となります。

これと同じメソッドが、Java にもあります。(ただし、1.5以降)
System.out.printf() です。

System.out.printf(“val=%d (hex=%x) %c\n”,x,x,x);
と、C言語と同じ様に使えます。

表示するのではなく、文字列に変換するには
(つまり、C言語の sprintf()相当の処理は)
String.format() というメソッドが使えます。

String s=String.format(“val=%d (hex=%x) %c\n”,x,x,x);
とすると、s に変換された文字列が入るので
label.setText(s); というようにGUI的に表示できます。

この書式付き変換を使用せずに、同じことをするには、
10進数変換→ Integer.toString(x);
16進数変換→ Integer.toHexString(x);
で、できるのですが
文字にするのは、少々面倒です。

char c[]=new char[1];
c[0]=(char)x;
s=new String(c);

という感じでしょうか?
(もっと良い方法をご存知の方は教えてください)

これが、s=String.format(“%c”,x); で済むのですから
とても便利です。

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

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

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

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