2016-06-16 22 views
0

私は文字列0,1,2の3つの要素の配列を持っています。そして、私は[2]配列に配列への配列に$ 0を交換する最速の方法は何か文字列Java - 配列から文字列を置換する最も速い方法は何ですか

this is $0 string some text here $1 another text here $2 and some here 

[0]、$ 1を持っている[1]と$ 2。私はこのような操作が本当にたくさんあるので、最も速く必要です。

EDIT:

現在、私は次のメソッドを使用します。

Formatter formatter=new Formatter(); 
String[] array=new String[]{"aaa","bbb","ccc"}; 
String result=formatter.format("some text %s another tett %s more text %s",array)); 
+3

このような基本的な質問を求める人の半分は、「最も速い」または「最も効率的な」方法を必要としています。あなたは現在どのようにそれをやっていますか?また、「本当にたくさんの操作」がいくつありますか? – Kayaman

+3

ハードウェアは最近非常に最後のCPUサイクルからeekする必要がありますごみです。 –

+0

@Kayaman私の編集を参照 –

答えて

0

StringBufferを使用して、マーカーは、 "並べ替え" していると仮定して(よりつまり$ 0、$ 1、$ 2、ないより10個のマーカーは、あなたがJHMを使用し

String[] array = new String[]{"0", "1", "2"}; 
    String orig = "this is $0 string some text here $1 another text here $2 and some here"; 

    StringBuffer b = new StringBuffer(orig); 
    int lastIndex = -2; 
    for (int i = 0; i < array.length; i++) { 
     int i1 = orig.indexOf("$",lastIndex+2); 
     b.replace(i1, i1 + 2, array[i]); 
     lastIndex = i1; 
    } 
    String s = b.toString(); 

を使用することができ、

01よりも約2~3倍高速であると思われます
String.format(orig, array) 

しかし、明らかに一般的には適用されない。誰かが知っている、おそらく(おそらく、実際には)私のコードにバグがあります。

関連する問題