0

私の Java ツールの 1 つで、いくつかの文字列が繰り返し作成され、変数が次のように変更されています。

for (String value : values) {
    // unrelated code omitted for clarity
    String outputValue = "blah blah blah " + foo + " blah " + bar + " blah";
    // code that writes out the created outputValue
}

Stringパラメータ以外のテキストは常に同じであるため、これは作成された である意味で「パラメータ」を使用するための最良の方法ではないと感じざるを得ません。ただし、私が理解しているようにString.format、これらのパラメーターをプラグインするために使用するか、同様に使用すると、実際には単純な連結よりも効率が低下します。

これらのパラメータ化された文字列を作成するためのより良い/より効率的な(メモリよりも時間に関して)方法はありますか?

4

4 に答える 4

0

最も効率的な方法は、おそらく StringBuilder を使用することです。

StringBuilder builder = new StringBuilder("blah blah blah");
builder.append(yourvalue).append("blah");

StringBuilder が可能にするのは、複数の高価な String 連結を回避することです。最終的に完了したら、呼び出しbuilder.toString()て最終的な文字列を取得するだけです。

于 2013-04-07T00:31:51.840 に答える
0

StringBuffer読みやすいワンライナーと、 orを使用した非常に効率的な読みにくいコードとの間のトレードオフですStringBuilder。したがって、この質問に対する普遍的な答えはないと思います。どの品質があなたにとってより価値があるか (読みやすさ -> 保守性またはパフォーマンス)、それが呼び出される回数、アプリのボトルネックなどに依存します。

ここに素晴らしい要約があります

于 2013-04-07T00:34:38.767 に答える
-1

String.format+ による文字列連結の使用またはその代わりにこれを最適化しようとしないでくださいStringBuilder.append(特にループ内で)。

于 2013-04-07T00:36:13.330 に答える