私は、このプログラムをここで文中の接続詞を検索することにしました。 私は配列作っ:たとえば正規表現マッチャーは、文字列の繰り返し検索を防ぎます。
String toSearch = "(?i)\\b(" + String.join("|", SUB_CONJS) + ")\\b";
Pattern pattern = Pattern.compile(toSearch);
Matcher matcher = pattern.matcher(text);
int count = 0;
while (matcher.find()) count++;
、I場合:あなたが、私は彼らのために検索するマッチャーを使用し、そのような"if"
と"as if"
としてrepititionsがある見ることができるように
public static final String[] SUB_CONJS = new String[] {
"after", "afterwards", "although", "as if",
"as long as", "as much as", "as soon as",
"as though", "because", "before", "by the time",
"even if", "even though", "if", "in order that"...
//some more
};
をtext
に"as if"
を入れると、"if"
と"as if"
の両方を検索したため、count
は2となります。問題を解決する方法はありますか?感謝
コンパイルされません。静的な 'Pattern.matcher()'メソッドはありません。コードを再入力しないでください。常にStackOverflowエディタにコピー/ペーストしてください。 –
これは正規表現で '' if before '''と同じように '' if' 'が' 'if ''をそのようなテキストとマッチさせないようにしているので、おそらくあなたはSUB_CONJS配列部分を持っています。 'contains'メソッドを使ってこの配列をソートしようとすることができます。文字列Aに文字列Bが含まれている場合、Aは配列のBの前に置く必要があります。 – Pshemo