私はJavaが初めてで、7日前にプロジェクトを開始しました。今日、この場所の何人かの人々と一緒に、1つの問題をうまく乗り越えましたが、まだもう1つ...
最後の問題では、文字列を検索して強調表示する必要がありましたが、今、私の問題は次のとおりです。
選択インデックスが、自分の知らない未知の文字の後に検索するインデックスと同じではないのはなぜですか :|
これは私のボタンコードです:
int startFrom = jEditorPane1.getSelectionStart();
if(jEditorPane1.getSelectionStart() == jEditorPane1.getSelectionEnd()){
startFrom = -1;
}
String searchWord = jTextField3.getText();
int searchIndex = jEditorPane1.getText().indexOf(searchWord, startFrom + 1);
if(searchIndex != -1){
jEditorPane1.requestFocusInWindow();
jEditorPane1.select(searchIndex, searchIndex+searchWord.length());
}
else{
jEditorPane1.setSelectionStart(0);
jEditorPane1.setSelectionEnd(0);
}
そして、文字列インデックスをスイングjEditorPane/JTextPaneインデックスに変換するために、文字列処理を行う必要があると確信しています
たとえば、次のような文字列で do を検索します。「Hey, How do you do?」
そしてそれを次のように強調してo
います。
つまり、それが何をすべきかについて1つのインデックスを開始したことを意味します。ここでは、\nのエスケープ文字が原因であり、わかりません.1行のテキストで発生することがあります...
どうすればこれに乗ることができますか?