文字列が月の名前であるかどうかを判断したいのですが、比較的迅速に実行したいと考えています。現在私の脳に詰まっている機能は次のようなものです。
boolean isaMonth( String str ) {
String[] months = DateFormatSymbols.getInstance().getMonths();
String[] shortMonths = DateFormatSymbols.getInstance().getShortMonths();
int i;
for( i = 0; i<months.length(); ++i;) {
if( months[i].equals(str) ) return true;
if( shortMonths[i].equals(str ) return true;
}
return false;
}
ただし、大量のテキストを処理し、一度に 1 つの文字列をこの関数に渡します。ほとんどの場合、ループ全体を通過して false を返すという最悪のケースになります。
この状況に適応できる月名と年に一致する正規表現について話している別の質問を見ました。正規表現の方が速いでしょうか? もっと速いかもしれない他の解決策はありますか?