Jak mogę wykryć, czy ciąg zawiera określone słowo? Na przykład mam poniżej ciąg, który brzmi:
@"Here is my string."
Chciałbym wiedzieć, czy potrafię wykryć słowo w ciągu, na przykład „jest”.
objective-c
string
nsstring
Alex
źródło
źródło
rangeOfString
.Odpowiedzi:
Oto jak bym to zrobił:
Możesz łatwo dodać to jako kategorię do
NSString
:źródło
containsString
w NSString dostępna jest nowa metoda o nazwie ujawniona.Użyj poniższego kodu, aby zeskanować słowo w zdaniu.
źródło
W iOS8 możesz teraz używać:
Jest tam interesujący post o tym, jak „doposażyć” go do iOS7: http://petersteinberger.com/blog/2014/retrofitting-containsstring-on-ios-7/
źródło
Polecam używanie NSLinguisticTagger . Możemy go użyć do wyszukiwania
Here is my string. His isn't a mississippi isthmus. It is?
To daje:
Ignoruje,
His
mississippi
aisthmus
nawet identyfikujeis
wnętrzeisn't
.źródło
Mam nadzieję, że to ci pomoże ... dodaj tę linię w pliku .m lub utwórz osobną klasę i zintegruj ten kod.
źródło
W iOS 8 i Swift możemy użyć metody localizedCaseInsensitiveContainsString
źródło
Kompletne rozwiązanie najpierw skanuje w poszukiwaniu ciągu (bez dodanych spacji), a następnie sprawdza, czy bezpośrednio poprzedzający znak jest pusty lub początek wiersza. Podobnie sprawdź, czy następujący po nim znak jest pusty lub koniec wiersza. Jeśli oba testy przejdą pomyślnie, masz zgodność. W zależności od potrzeb można również sprawdzić
,
,.
,()
, itd.Alternatywnym podejściem jest oczywiście przeanalizowanie ciągu na słowa i sprawdzenie każdego słowa indywidualnie.
źródło