2012-04-10 30 views
4

NSStringに別の部分文字列が含まれているかどうかを確認するにはどうすればブール値を返すか。Objective-C文字列関数:文字列を含む

これは私が考えているものです:

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

しかし、OBJの-Cは、このための機能を有していないかのように、私がやった研究から、それはそう。このWikipedia articleは、多数の文字列関数、その相違点、およびすべてを異なる言語で示していますが、Contain関数のObj-Cサポートはありません。

上記のような使いやすい関数(C#およびVB.NET関数に似ています)を知っている人はいますか?

「検索」機能は機能しますか?もしそうなら、どうですか?

これがObj-Cでサポートされていない場合は、回避策がありますか?

ご協力いただきありがとうございます。

+0

の可能重複(http://stackoverflow.com/questions/2753956/string-contains-string-in-objective-c) – warrenm

+0

客観[文字列はObjective-Cで文字列を含みます] -Cオブジェクトは、関数ではなくメソッドを定義します。大きな違いがあります。 –

+0

ここで回答を確認できます:

答えて

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

iOS 8は '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

... NSStringのカテゴリを作成し、それを入れ

コード:

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

    return (aRange.location!=NSNotFound); 
} 

用途:

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

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

case insensitiveになりたい場合。

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

Documentation

関連する問題