Próbuję zrozumieć różnicę między matches()
i find()
.
Według Javadoc (z tego, co rozumiem) matches()
przeszuka cały ciąg, nawet jeśli znajdzie to, czego szuka, i find()
zatrzyma się, gdy znajdzie to, czego szuka.
Jeśli to założenie jest prawidłowe, nie widzę, kiedy chcesz użyć matches()
zamiast find()
, chyba że chcesz policzyć liczbę znalezionych przez niego dopasowań.
Moim zdaniem klasa String powinna mieć find()
zamiast tego matches()
wbudowaną metodę.
Podsumowując:
- Czy moje założenie jest prawidłowe?
- Kiedy warto używać
matches()
zamiastfind()
?
find()
wielokrotne dzwonienie może zwrócić różne wyniki dla tego samegoMatcher
. Zobacz moją odpowiedź poniżej.