単語の頻度をカウントするために使用StringUtils.countMatches
していますが、いくつかの文字で始まる単語をテキストで検索する方法はありますか?
例:
「私のアパートの芸術作品」でアートを検索すると 3 が返ってきます。artのみで始まる単語に対して 2 を返す必要があります。
私の解決策は、テキスト内の \r と \n をスペースに置き換え、コードを次のように変更することでした。
text = text.replaceAll("(\r\n|\n)"," ").toLowerCase();
searchWord = " "+searchWord.toLowerCase();
StringUtils.countMatches(text, searchWord);
次の正規表現も試しました。
patternString = "\\b(" + searchWord.toLowerCase().trim() + "([a-zA-Z]*))";
pattern = Pattern.compile(patternString);
matcher = pattern.matcher(text.toLowerCase());
質問: - 私の最初の解決策は理にかなっていますか、それとももっと良い方法がありますか?
-私の 2 番目のソリューションは高速ですか? 大きなテキスト ファイルと適切な数の検索語を扱っているためです。
ありがとう