Javaでは、任意のHTMLドキュメントを文字列として使用しています。簡単にするために、言う:変換前と変換後の文字列のインデックス
String original = "Hello, <strong>this</strong> is a string";
そして、私はありませんタグ内に、常にテキスト内の、文字列内のさまざまな場所の記録を持っています。たとえば、 "is"という単語の開始と終了のインデックスは29と31です。
次に、文字列の変換を実行します。この場合、HTMLタグを取り除きます。これは次のようになります。
original = "Hello, this is a string";
「今」という単語の新しい開始および終了インデックスを取得するためのエレガントな方法はありますか(12および14)。
考えられる1つの解決策は、元の各インデックスに「フラグ」を挿入し、HTMLを取り除き、その位置を記録しながらフラグを削除することです。インデックスは常にタグの外側にあるので、HTMLのストリッピングに問題はありません。
これが実際に最良の方法であれば、他のHTMLドキュメントでは偶然に起こることのない「フラグ」の良い選択について誰かが推奨していますか?
あなたは言うことができません:startNew = startOld - (lengthNew - lengthOld)? – mfrankli
@mfrankli私は私の例のためにあまりにも単純すぎると思う - 実際には、削除されると、文字列の長さの変化を文字列の先頭からの距離。 –