2012-04-10 13 views
4

Wie kann ich überprüfen, ob ein NSString einen anderen Teilstring enthält und an diesem Punkt einen booleschen Wert zurückgibt.Objective-C-String Funktion: Enthält String

Dies ist, was ich denke an:

If myString.contains("string") then 
{ 
    //Stuff Happens 
} 

Aber aus der Forschung, die ich getan habe, scheint es, als ob Obj-C keine Funktion dafür hat. Diese Wikipedia article gibt zahlreiche String-Funktionen, ihre Unterschiede und alle in verschiedenen Sprachen, aber ich sehe keine Obj-C-Unterstützung für eine Contain-Funktion.

Kennt jemand eine einfach zu bedienende Funktion wie die oben genannte (die der C# - und VB.NET-Funktion ähnlich ist)?

Würde eine Suchfunktion funktionieren? Wenn das so ist, wie?

Wenn dies in Obj-C nicht unterstützt wird, gibt es eine Problemumgehung, die ich verwenden kann?

Jede Hilfe wird sehr geschätzt.

+0

möglich Duplikat [Zeichenfolge enthält Zeichenfolge in Objective-c] (http://stackoverflow.com/questions/2753956/string-contains-string-in-objective-c) – warrenm

+0

Ziel -C Objekte definieren Methoden, keine Funktionen. Es gibt einen großen Unterschied. –

+0

Sie können die Antwort hier überprüfen:

Antwort

12
if ([myString rangeOfString:@"string"].location != NSNotFound) 
{ 
    // Stuff happens 
} 
+2

iOS 8 implementiert 'containsString:' –

1
if([string rangeOfString:substring].length > 0) 
    ... 
4
NSString *someString = @"Time for an egg hunt"; 

if ([someString rangeOfString:@"egg" options:NSCaseInsensitiveSearch].location != NSNotFound) { 
    NSLog(@"Found it!"); 
} 
2

erstellen NSString Kategorie, und setzte sich in ...

Code:

- (BOOL)contains:(NSString *)str 
{ 
    NSRange aRange = [self rangeOfString:str]; 

    return (aRange.location!=NSNotFound); 
} 

Verbrauch:

NSString* testStr = @"This is my string"; 

if ([testStr contains:@"is"]) 
{ 
    // do something 
} 
4

Wenn Sie case insensitive sein möchten.

NSRange range = [string rangeOfString:@"string" options:NSCaseInsensitiveSearch]; 
if (range.location != NSNotFound) 
{ 
    return range.location; 
} 
else 
{ 
    return nil; 
} 

Documentation