0

C#には、コンソールに文字列を書き込むメソッドがあります。

それはConsole.WriteLine("Hello {0} My name is {1}", "World", "John");

これは戻ります

Hello World My name is John

このようなメソッド構造をJavaで再作成するにはどうすればよいですか。メソッドの最後に無制限の量のパラメーターを渡して、適切なインデックスに配置できるようにするには?

どんな助けでも大歓迎です

// 編集

多分私は十分に説明していません。コンソール出力を作成する方法は必要ありません。必要な数のパラメーターを渡して適切な場所に配置できる構造をどのように再作成できるかを知りたいだけです。例えば

movie.setPlot( "この映画は{0}で、評価は{1}です"、 "FUN"、 "6サムズアップ");

これにより、映画のプロット変数が次のように設定されます。

This movie is FUN and gets a rating of 6 Thumbs up

//編集2

最終結果:

private static final String PREFIX = "AwesomeApp";

    public static void e(String TAG, String msg){
        android.util.Log.e(PREFIX + "  >> " +TAG,  msg);
    }

    public static void e(String TAG, String msg, Object...args){
        e(TAG, String.format(msg, args));
    }
4

2 に答える 2

3

var-args不確定な数のパラメーターを処理するために使用できます。

void setPlot(String text, String... args) {
   System.out.printf(text, args);
}
于 2012-12-20T21:41:40.173 に答える
1

Formatter次のように、Java5で導入されたクラスを使用できます。

Formatter f = new Formatter();
f.format("Hello %s my name is %s", "World", "John");
System.out.println(f.toString());

編集:(質問の編集に応じて)次のように、独自のカスタムメソッドの実装でフォーマッターを使用できます。

private String plot;

void setPlot(String formatStr, Object... data) {
    Formatter f = new Formatter();
    format(formatStr, data);
    plot = f.toString();
}

setPlotこれで、次のように関数を呼び出すことができます。

movie.setPlot("This movie is %s and gets a rating of %s", "FUN", "6 Thumbs up");
于 2012-12-20T21:42:23.190 に答える