W Javie, co szybciej-string.contains ("jakiś tekst") lub regex, który szuka tego samego tekstu?
Jak mówi tytuł, szukam tylko ciągu pasującego do klienta kończącego wysyłanie danych przez gniazdo, więc mogę wyszukać coś takiego jak
{"Message": "END"}w JSON na przykład string.
A najdłuższe ciągi będą miały kilkaset znaków.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jednak String.Contains () jest przydatna tylko do sprawdzania istnienia dokładnego podciągu, podczas gdy Regex pozwala na więcej cudów. Więc wszystko zależy.
Anonimowy użytkownik
Potwierdzenie od:
Ale z forów i blogów jest szybszy, ale wciąż pomijalna różnica w wydajności
Anonimowy użytkownik
Potwierdzenie od:
Platforma Caliper o otwartym kodzie źródłowym firmy Google
https://code.google.com/p/caliper/
kod
Więcej na temat
Fakt, że mikrobenka jest, czytaj tutaj.
https://code.google.com/p/cali ... marks
Szczegółowy przykład
http://codingjunkie.net/micro- ... iper/
Anonimowy użytkownik
Potwierdzenie od:
jak używać metody regex w String.contains () w Javie
https://coderoad.ru/15130309/
String.contains
>
działa z ciągiem znaków, kropką. To nie działa z wyrażeniem regularnym. Sprawdza, czy dokładnie określona linia pojawia się w bieżącej linii, czy nie.
Zauważ, że nie sprawdza granic słów; po prostu sprawdza podciąg.
Jego wydajność jest dobra, zajmie ułamek sekundy mniej niż Regex.
Rozwiązanie Regex
>
Regex jest potężniejszy niż , ponieważ możesz zastosować granicę słów do słów kluczowych (między innymi). Oznacza to, że możesz wyszukiwać słowa kluczowe, takie jak
słowa
, nie tylko
podciągi
.
W ten sposób przeanalizowanie całego wiersza wymaga więcej czasu wykonania.