8

MessageFormat比較やStringBuilder授業で知りたい。私が文字列を持っている例を言ってみましょう。パフォーマンスに関しては、どちらが速いですか: java.text.MessageFormat.formatまたは StringBuilder("Test ").append("Hello ")?

String txt = java.text.MessageFormat.format("Test {0}"," Hello") 
String txt1=   new StringBuilder("Test ").append("Hello ")

ベストプラクティスまたはパフォーマンスに関して、どちらが使用されているかを知りたいだけです

4

2 に答える 2

14

自分で試してみてください:

long start = System.nanoTime();
String txt = MessageFormat.format("Test {0}"," Hello");
System.out.println("MessageFormat: " + (System.nanoTime() - start) + " ns");

start = System.nanoTime();
String txt1 = new StringBuilder("Test ").append("Hello").toString();
System.out.println("StringBuilder: " + (System.nanoTime() - start) + " ns");

出力:

メッセージフォーマット: 1125974 ns

StringBuilder: 16705 ns

結論:

StringBuilder既存の配列にいくつかの文字を追加するだけなので、はるかに高速に動作します。

于 2013-03-12T10:09:33.623 に答える
3

StringBuilder動的バッファーにテキストを追加するだけでMessageFormat、データを追加する前に指定された形式を解析する必要があるため、StringBuilderよりも効率的ですMessageFormat

于 2013-03-12T10:02:36.030 に答える