Java:printf書式で指定してデータを文字列にするString.format
こんちは、管理人イガジーです。
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); で済むのですから
とても便利です。
この記事へのコメントはこちら