• 締切済み

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

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

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

みんなの回答

回答No.2

Formatter (http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Formatter.html)ですね。 確か、J2SE 5.0から使えるようになったので古いJava開発環境では使えませんが。

noname#16216
noname#16216
回答No.1

Javaでは、C言語のように書式指定文字列(%cとか%dとか)を指定して出力ストリームへの出力を行う関数は存在しないと思います。 どうしても、書式指定文字列を扱いたいということであれば、下記のMessageFormatクラスを利用すれば、近いものは自作できるように思います。 (やってみたことはありませんが。。。) 例えば、C言語でsprintf関数を使って char st[20]; sprintf(st, "%c%d", 65, 123); のように記述するなら、 char ch = 65; String str = ch + Integer.toString(123); のようにしてやれば実現できると思います。

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/text/MessageFormat.html

関連するQ&A

  • 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
  • Javaでsprintfのようなもの

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

    • ベストアンサー
    • Java
  • 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関数の作り方

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

  • c#でC言語のstrtokに相当する関数は何か

    文字列から指定した文字でデータを区切る関数strtokがC言語にはある これに相当するC#の関数は何か 例えばCでは以下のように書く。 char data1[]= " 123 , 456 Yamada " ; char *token ; strtok( data, " ," ) ; /* スペースとカンマを区切りに文字列を抽出 */ token = strtok( str, " ." ); printf(" token chat = %s\n", token ) ; while ( token != NULL ) { token = strtok( NULL," ." ); if ( token != NULL ) printf(" token chat = %s\n", token ) ; } これに相当するc#のSplit関数を使用すると 不要な空白を取り出しているようである 知っている方がおりましたら、教えて下さい。

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

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

  • ・Javaで、C言語の#defineに相当するもの

    ・Javaで、C言語の#defineに相当するもの 今までC/C++を使い込んできて、最近Javaの勉強を始めました。 C言語では条件分岐に使う定数を指定するのに#defineをよく使用していたのですが、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 は文字列の最初の文字のアドレスを表すんだったと思うんですが。 違いが分からず,混乱しています。 初心者につき,間抜けな質問をしているかもしれませんが,ご教授くださると幸いです。

  • C言語 if文でscanf関数

    C言語のif文でscanf関数を使って、~と入力されたら・・・(~は文字列)のようなプログラムを作りたいです。どうすれば良いでしょうか?(簡単にお願いします・・・)

  • C言語 strstr()に似た関数は?

    C言語で、strstr()は、文字列内の先頭か指定文字列を検索しますが、 文字列内の最後尾から指定文字列を検索する関数はありませんか?