Chcę ustalić, czy ciąg jest nazwa miesiąca i chcę to zrobić stosunkowo szybko. Funkcja, która jest obecnie zatrzymany w moim mózgu jest coś takiego:Czy istnieje szybszy sposób, aby dopasować dowolny ciąg do nazwy miesiąca w Javie
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;
}
Jednak będę przetwarzania dużo tekstu, przeszedł jeden ciąg w czasie do tej funkcji, a większość czasu będę uzyskiwanie najgorszy przypadek przechodzenia przez całą pętlę i zwracania fałszu.
widziałam jeszcze jedno pytanie, że mówił o dopasowanie wyrażenia regularnego do nazwy miesiąc i rok, które mogą być dostosowane do tej sytuacji. Czy Regex będzie szybszy? Czy istnieje inne rozwiązanie, które może być szybsze?
na początek, można przenieść/make miesięcy, shortMonths statycznych zmiennych składowych (przydzielić tylko raz) .. –
wyrażeniem regularnym powinna być szybka. Specjalnie wykonana maszyna stanowa szybciej. – SyntaxT3rr0r