Como posso detectar se uma string contém uma determinada palavra? Por exemplo, eu tenho uma string abaixo da qual diz:
@"Here is my string."
Gostaria de saber se consigo detectar uma palavra na string, como "is", por exemplo.
objective-c
string
nsstring
Alex
fonte
fonte
rangeOfString
.Respostas:
Aqui está como eu faria isso:
Você pode facilmente adicionar isso como uma categoria em
NSString
:fonte
containsString
exposto no NSString.Use o código a seguir para digitalizar a palavra na frase.
fonte
No iOS8, agora você pode usar:
Há um post interessante sobre como "atualizá-lo" para o iOS7 aqui: http://petersteinberger.com/blog/2014/retrofitting-containsstring-on-ios-7/
fonte
Eu recomendo usar o NSLinguisticTagger . Podemos usá-lo para pesquisar
Here is my string. His isn't a mississippi isthmus. It is?
Isso gera:
Ignora
His
mississippi
eisthmus
até identificais
dentro deisn't
.fonte
Espero que isso ajude você .. adicione esta linha no arquivo .m ou crie uma classe separada e integre esse código.
fonte
Com o iOS 8 e Swift, podemos usar o método localizedCaseInsensitiveContainsString
fonte
Uma solução completa primeiro procuraria a sequência (sem espaços em branco adicionados) e depois verificaria se o caractere imediatamente anterior está em branco ou no início da linha. Da mesma forma, verifique se o caractere imediatamente seguinte está em branco ou no final da linha. Se ambos os testes passarem, você terá uma correspondência. Dependendo de suas necessidades, você também pode verificar se há
,
,.
,()
, etc.Uma abordagem alternativa, é claro, é analisar a sequência em palavras e verificar cada palavra individualmente.
fonte