2010-08-03 108 views
4

如何判斷一個字符串是否包含某些東西?喜歡的東西:iPhone Objective-C:如果字符串包含...?

if([someTextField.text containsString:@"hello"]) { 

} 
+0

沒有什麼錯零下這裏:) – vodkhang 2010-08-03 01:03:03

+0

同[ 字符串包含在Objective-C(iPhone)字符串 (http://stackoverflow.com/questions/2753956/string-contains-字符串在目標-C-iphone)。 – 2010-08-03 01:04:03

回答

22

你可以使用:

if (result && [result rangeOfString:@"hello"].location != NSNotFound) { 
    // Substring found... 
} 
7

你必須使用- (NSRange)rangeOfString:(NSString *)aString

NSRange range = [myStr rangeOfString:@"hello"]; 
if (range.location != NSNotFound) { 
    NSLog (@"Substring found at: %d", range.location); 
} 

查看更多在這裏:NSString rangeOfString

+1

宇宙在那個答案中「有點棘手」? – JeremyP 2010-08-03 08:09:24

+0

因爲對我來說,來自java的背景。我們應該使用[str contains:],所以當我發現API時,它看起來有點奇怪。我認爲提問者認爲相同,所以我說有點棘手 – vodkhang 2010-08-03 08:13:49

+0

haha​​haha傑里米的職位只是讓我大聲笑 – Baconbeastnz 2012-11-05 22:39:03

2

如果你的代碼的目的是檢查一個字符串是否包含另一個字符串,您可以創建一個類別來明確此意圖。

@interface NSString (additions) 

- (BOOL)containsString:(NSString *)subString; 

@end 

@implementation NSString (additions) 

- (BOOL)containsString:(NSString *)subString { 
    BOOL containsString = NO; 

    NSRange range = [self rangeOfString:subString]; 
    if (range.location != NSNotFound) { 
     containsString = YES; 
    } 

    return containsString; 
} 

@end 

我還沒有編譯這段代碼,所以也許你應該改變一下。

昆汀