web-dev-qa-db-ja.com

Java:プレースホルダーを使用した文字列フォーマット

私はJavaが初めてであり、Pythonの出身です。Python

>>> x = 4
>>> y = 5
>>> print("{0} + {1} = {2}".format(x, y, x + y))
4 + 5 = 9
>>> print("{} {}".format(x,y))
4 5

同じことをJavaで複製するにはどうすればよいですか?

27
user1757703

MessageFormat クラスは、あなたが望んでいるもののように見えます。

System.out.println(MessageFormat.format("{0} + {1} = {2}", x, y, x + y));
51
rgettman

Javaには、これと同様に機能する String.format メソッドがあります。 使用方法の例です これは ドキュメントの参照 です。これは、これらの%オプションが何であるかを説明しています。

そして、これがインラインの例です:

package com.sandbox;

public class Sandbox {

    public static void main(String[] args) {
        System.out.println(String.format("It is %d oclock", 5));
    }        
}

これは「5時です」と表示されます。

11
Daniel Kaplan

これを行うことができます( String.format)を使用

int x = 4;
int y = 5;

String res = String.format("%d + %d = %d", x, y, x+y);
System.out.println(res); // prints "4 + 5 = 9"

res = String.format("%d %d", x, y);
System.out.println(res); // prints "4 5"
2
jh314

Slf4jには MessageFormatter.format() があり、{}引数番号なし。Pythonと同じです。 Slf4jは一般的なロギングフレームワークですが、MessageFormatterを使用するためにロギングに使用する必要はありません。

0
proski