なので、「sprintf~」「printf~」構文は欠かせません。
printf、sprintf関数は、C/C++で文字列の整形を行うものです。
例えば、こんなことが出来ます。
(C++言語のソース)
- int i = 200; // 数値i
- char a[] = "abcdefg"; // 文字列a
- printf( "ただいまの値=%07dと、%s", i, a ); // 0詰めの7桁と、文字列を出力
(出力結果)
ただいまの値=0000200と、abcdefg
割と簡単に、色々整形しながら出力できます。しかも構文は一行。
sprintfを使えば、同じ形式で画面上ではなく、メモリ上の文字列データへ出力できますしね。
で、今の私は主にJava開発者です。
同じプログラムな訳で、当然値を整形して出力する事もあるわけですが。
実は、Java1.4にはこのsprintfに相当する機能が存在しないんですよ。
それも、同じことをするのに非常に面倒なコーディングが必要。
こんな感じ。
(JAVAのソース)
- int i = 200; // 数値i
- String a = "abcdefg"; // 文字列a
- DecimalFormat fm = new DecimalFormat(); // 数値フォーマット用クラス宣言
- fm.applyPattern( "0000000" ); // フォーマット形式指定
- String work = fm.format( (long)i ); // 数値にフォーマット適用
- System.out.println("ただいまの値=" + work +"と、" + a + "¥r¥n"); // 出力
(出力結果)
ただいまの値=0000200と、abcdefg
…長い。
えらく面倒だってばさ。
たかだか2、3行と思うかもしれないけれど、実はそう簡単じゃないんですよ。
実は、加工する値と加工する形式が増えれば増えるほど、この2,3行の追加分が3倍、4倍、と膨れ上がっていくわけで。
C/C++では同じ1行で出来ることを、数百行のソースを書いてやっとできるんです。
はー。
ちなみに、最近リリースされた、J2SE5.0以降では、ほとんどC/C++のsprintf、printfと同じ機能、使い勝手の関数が実装されたらしいです。
他にもJ2SE5.0では、かなり色々とC/C++に似た便利な機能が移植されているそうですよ。
きっと相当要望があったんだろうなー。
ま、企業向け開発者の私がJ2SE5.0で開発できるようになる時代なんて、何年先になるのか分からないけれど。
…ああ、やだやだ。