プログラムで次のコードをたくさん実行する必要があります
int index=temp.lastIndexOf("\\n== External links ==\\");
System.out.println( temp.substring(index))
Indexof,substring,contains が含まれているため、これらの操作は stringbuffer または string でより適切になりますか?
もしそうなら、なぜあなたは私を詳しく説明できますか?
String.substring新しい文字列を作成せず、元の文字列にインデックスを付けるだけなので、文字列の内容をコピーするコストを回避できます。したがって、これだけで十分な場合は、おそらく十分です (特に/にはメソッドがないStringため、使い方は簡単です)。StringBufferStringBuildercontains
OTOHStringBufferは同期されているため絶対に使用しないでください。これにより、パフォーマンスが低下StringBuilderします。Java5 以降を使用している場合は、代わりに検討してください。
最終的に、確実に知る唯一の方法は、実際のデータを使用して、自分の環境で各オプションを測定することです。
多くの文字列操作を実行する場合は、String よりも StringBuffer または StringBuilder を使用することをお勧めします。これは、String を使用すると、「文字列定数プール」に未参照の String オブジェクトが多数残るためです。
さらに、StringBuilder は StringBuffer よりも優先されます (API はまったく同じですが)。そのメソッドはスレッドセーフではない (つまり、同期されている) ため、より高速に実行されます。
containsStringBuilder に StringBufferがないか、ありません。indexOf と substring は String 自体に委譲されます。StringBuffer と StringBuilder は、連結の場合は高速ですが、文字列を調べる場合: String クラス自体を取得します。