ether indexOfまたはregex Patternを使用するときは、基本的に\ nを無視して検索をラップしようとしています。見つかったインデックスが間違っているので、すべての改行文字を削除できません。例えばhaystackで針を見つけてテキストの位置を保持するための改行を無視する
:
Matcher matcher = Pattern.compile("dog").matcher("cat\n do\ng cow");
matcher.find();
int start = matcher.start();
int end = matcher.end();
System.out.println("Start: "+start+" End: "+end);
を出力する必要があります。私は、
Matcher matcher = Pattern.compile("dog").matcher("cat\n do\ng cow".replaceAll("\n",""));
を改行を削除した場合
Start: 5 End: 9
その後、インデックスがめちゃめちゃにされるだろう:
Start: 4 End: 7
を
注:この例で使用したよりも複雑な正規表現を使用する予定です。
私はテキストエディタでfind関数を実装しており、 'ラップアラウンド'オプションを作成しようとしています。 アイデア
あなたは無視してどういう意味ですか?インデックスが間違っているため削除できないと言いますが、indexOfを実行すると改行文字が数えられ、無視されません。希望の入力と出力を表示してください。 – Danny
さらに、(コードを介して)何を試しているかを示して、人々があなたを解決策に導こうとするようにしてください。 –