1. ホーム

[解決済み】Javaで文字列をフォーマットする方法

2022-04-18 11:51:55

質問

原始的な質問ですが、このような文字列はどのようにフォーマットすればいいのでしょうか。

2}の{1}の手順"。

Javaで変数を代入して?C#では簡単です。

どのように解決するのですか?

String.formatの他に、次のようなものも見てみましょう。 java.text.MessageFormat . このフォーマットは、より簡潔で、あなたが提供したC#の例に少し近く、同様にパースに使用することができます。

例えば

int someNumber = 42;
String someString = "foobar";
Object[] args = {new Long(someNumber), someString};
MessageFormat fmt = new MessageFormat("String is \"{1}\", number is {0}.");
System.out.println(fmt.format(args));

Java 1.5で改善されたvarargsとautoboxingを利用し、上記の例をワンライナーにしたより良い例です。

MessageFormat.format("String is \"{1}\", number is {0}.", 42, "foobar");

MessageFormat は choice 修飾子で国際化された複数形を行うのに、ちょっとだけいい感じです。 変数が 1 のときは単数形、それ以外は複数形を正しく使うメッセージを指定するには、次のようにします。

String formatString = "there were {0} {0,choice,0#objects|1#object|1<objects}";
MessageFormat fmt = new MessageFormat(formatString);
fmt.format(new Object[] { new Long(numberOfObjects) });