• ベストアンサー

Javaでsprintfのようなもの

JavaでC言語のsprintfのようなフォーマット書式機能のついた文字列生成メソッドはあるのでしょうか? 自作しないと存在しないのでしょうか?

  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • ttex
  • ベストアンサー率54% (20/37)
回答No.2

java1.4系で0詰め限定ならDecimalFormatクラスあたりを使うのが良いと思います。(これは1.3系でも使えます) http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/text/DecimalFormat.html ググったら、利用されている例として以下のページがトップに来ました。 http://blog.trap.holy.jp/?eid=640557 もう少し複雑になるなら、さっくりとfor文で回してしまっても良いと思います。そこまで複雑な処理ではありませんし。

参考URL:
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/text/DecimalFormat.html

その他の回答 (1)

回答No.1

俺が良く理解できてなかったら申し訳ないんだが Formatterクラスの説明にあるように http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html Formatter.format() や String.format() じゃ駄目なのかな?

kourei
質問者

補足

JDK1.5未満はどうしたらよいのでしょうか? j2sdk1.4.2_16 今のところ、0詰め処理をしたいだけですが・・・

関連するQ&A

  • C言語のsprintfに相当する関数をご存知でしたら教えて下さい。

    初めてjavaでプログラムを作成しています。 C言語のsprintfに相当するような書式文字列が扱える関数をご存知でしたら教えて下さい。 宜しくお願いします。

  • C言語のsprintfに相当するJAVAのメソッドは何か

    C言語ではデータを編集してメモリに出力する関数sprintfがある。 char rec[100] ; int i=1, j =2, k =3 ; sprintf(rec, "%3d %3d %3d", i, j, k ) と書くと、変数i,j,kの値が編集されてrecに入る。 このsprintfに相当するJAVAのメソッドはあるか。

    • ベストアンサー
    • Java
  • sprintf の使い方について

    C 言語の超初心者につき,おろかな質問をお許しください。 sprintf 関数について char str[40]; sprintf(str, "hogehoge %d", hoge_int); という文法はよく目にするのですが char *str; sprintf(str, "hogehoge %d", hoge_int); という文法はあまり見たことがありません。 両方ともちゃんと動くのですが,後者は文法的に正しいのでしょうか? char str[40] とした場合でも char *str とした場合でも, str は文字列の最初の文字のアドレスを表すんだったと思うんですが。 違いが分からず,混乱しています。 初心者につき,間抜けな質問をしているかもしれませんが,ご教授くださると幸いです。

  • sprintf関数での文字列変換について

    マイコンにて、 C言語で浮動小数点の数値を表示するプログラムを作成しているのですが、 PRINT_OUT("123.456"); のように、文字列を直接指定した場合は正しく表示されるのですが、 sprintf()関数を用いて、浮動小数点を文字列に変換した場合、 buf char[10]; sprintf(buf,"%lf",123.456); PRINT_OUT(buf); とした場合はプログラムが暴走?(恐らく配列破壊を起こしていると 思われますが、)してしまい、上手く動作しません。 (但し、整数の場合は正常に動作します。) そこで、質問させていただきたいのですが、 "123.456"のように直接文字列を指定した場合と、浮動小数点123.456 をsprintf()関数を用いて文字列に変換した"123.456"の書式に何か 違いはあるのでしょうか?よろしくお願い致します。

  • sprintfのような関数を自作する

    表題のようにsprintfのような関数を自作することはできますか? 行いたいのは、例えば、 void TestKansu(AnsiString str) { //str文字列を処理 } という関数を用意したとしてこれを使うには AnsiString str; str.sprintf("TestMessage %d" , tes); TestKansu(str); としなくてはいけないと思いますが、もっと簡潔に TestKansu("TestMessage %d" , tes); とできるような関数を自作することは可能ですか? C++です。 宜しくお願いいたします。

  • sprintf関数の作り方

    c言語にsprintf関数っていうのがありますが、 これはどうやって作るのでしょうか? sprintf関数は引数の数が可変であり、引数のデータ型 が様々なので、いったいどうやって作るのか知りたいです。 どこかにソースでもあればいいのですが・・・。

  • JavaからCへ

    僕は今までJavaを勉強していたのですが、 つい最近になって、C言語に手をつけ始めました。 Javaを知っていればC言語は結構とっつきやすいのではないかと思って始めたのですが、Javaに慣れすぎたせいか、C言語の文法がどうもしっくりきません。 特に関数あたりが・・・・。 C言語の関数って、Javaでいうところのメソッドですよね? 僕はそのように解釈しているのですが、あまり自信がないので、ご存知の方がいましたらどなたか教えてください。 あと、Javaを学習した人のためのC言語の本、もしくはC言語を学んだ人のためのJavaの本がありましたら教えてください。

    • ベストアンサー
    • Java
  • Perlのsprintfで使われるフォーマット書式について

    Perlのsprintfで使われるフォーマット書式で例えば、 100.15という値があり、 [ 100.1500]と表示させたい場合、 %f11.4で良いのでしょうか?

    • ベストアンサー
    • Perl
  • Javaアプリ

    今日大学の授業でJavaを勉強しましたが、C言語はまだ分かる方ですが、Javaは分からない文字列ばっかりで、考え方が全く分かりません。 初心者はまず何から取り組んでいけばいいんでしょうか? コツを教えて下さい。お願いします。

    • ベストアンサー
    • Java
  • sprintf

    文字列に1文字を結合したいんだけど、 例えば  char str[] = "xy";  char c = 'z'; があって、2つを結合する場合、 #include <iostream.h> main(){  char str[] = "xy";  char c = 'z';  char buf[2];  buf[0] = c;  buf[1] = 0;  strcat(str, buf);  cout << str; } でもいいけど、もっと簡単にする方法があったら教えてください。  char str[] = "xy";  char c = 'z';  sprintf(str, "%s%c\0", str, c);  cout << str; イメージ的にこうだけど、失敗しました。

専門家に質問してみよう