文字列を取得し、特定の文字セットを他のものに置き換える、ある種のパーサを記述する必要があります。コードは次のようになります。多くの文字列を実行する最速の方法はJavaで置き換えます
noHTMLString = noHTMLString.replaceAll("</p>", "\n");
noHTMLString = noHTMLString.replaceAll("<br/>", "\n\n");
noHTMLString = noHTMLString.replaceAll("<br />", "\n\n");
//here goes A LOT of lines like these ones
この関数は非常に長く、多くの文字列を置き換えます。ここで問題となるのは、メソッドが何度も呼び出され、アプリケーションのパフォーマンスが低下するため、時間がかかるということです。
私は代替としてのStringBuilderを使用する方法について、ここでいくつかのスレッドを読んだことがあるが、それはでReplaceAllメソッドを欠いており、それはここでは述べていますようStringクラスでDoes string.replaceAll() performance suffer from string immutability?でReplaceAllメソッドが
マッチパターン&マッチャーとMatcher.replaceAllで動作します()はStringBuilderを使用して最終的に返される値 を保存するので、StringBuilderに切り替えると実際に置換を実行する時間が短縮されるかどうかわかりません。
すばやく多くの文字列を置換するための速い方法をご存知ですか?この問題のアドバイスはありますか?
ありがとうございました。
EDIT:htmlテキストのフィールドがいくつかあるレポートを作成する必要があります。各行に対して、これらの文字列内のすべてのhtmlタグと特殊文字を置き換えるメソッドを呼び出しています。完全なレポートでは、すべてのテキストを解析するのに3分以上かかります。問題は、私は非常に頻繁にメソッドを呼び出さなければならないということです。
何が遅くなりますか? - あなたのnoHTMLStringテキストの長さ、またはこの3つのステートメントを非常に頻繁に呼び出すか? – Ralph
私は、htmlテキストでいくつかのフィールドを持つレポートを作成する必要があります。各行に対して、これらの文字列内のすべてのhtmlタグと特殊文字を置き換えるメソッドを呼び出しています。完全なレポートでは、すべてのテキストを解析するのに3分以上かかります。だから私は問題を非常に頻繁に呼び出さなければならないということです。 – Averroes
参照:http://stackoverflow.com/a/1765616/59087 –