1

私がやろうとしているのは、大きな文字列のセグメントを取得することです。indexOf() を使用してみましたが、テキストが繰り返されると完全に失敗します。私の最終的な目標は、ユーザーが JTextPane でテキストを選択し、テキストのその部分だけをスタイル化できるようにすることです。StyledDocuments で動作するようにスタイリングを既に取得しており、ユーザーが選択したテキストのみをスタイル設定することもできましたが、ここに問題があります。

そう言いましょう

String alltext = "機敏な茶色のキツネが怠け者の犬を飛び越えた";

ユーザーがハイライトするのはString selectedtext

この場合、ただ言いましょう

String selectedtext = "brown";

私の目標は、選択したテキストのオフセットと長さを取得することです。この特定の文については、次のように簡単に実行できます。

int offset = alltext.indexOf(selectedtext);
int length = selectedtext.length();

そして、これはうまくいきます。しかし、次の場合はどうでしょう。

alltext = ブラウンブラウンブラウンブラウンブラウン;

そして、ユーザーは 3 番目の茶色を強調表示します。以前と同じことを行うと、プログラムは実際の茶色ではなく最初の茶色を選択し、最初の茶色をスタイリングします。

これを回避する方法、または大きなブロックから文字列のセグメントの位置を取得する代替方法はありますか?

ありがとう!

4

2 に答える 2