2011-04-24 72 views

回答

3

使用下面的代碼爲參考找到檢查一個子成串。

NSString* string = @"How to test a string for text" ; 
    NSString* substring = @"string for" ; 

    NSRange textRange; 
    textRange =[string rangeOfString:substring options:NSCaseInsensitiveSearch]; 

    if(textRange.location != NSNotFound) 
    { 

    //Does contain the substring 
    } 
-1

我假設所有的單詞都被一個空格分開,並且沒有標點符號。如果有標點符號。

NSArray * dataArray = [inputString componentsSeparatedByString:@「」];

for(int i=0; i<[dataArray count]){ 
if([[dataArray objectAtIndex:i] isEqualToString:@"hello"]){ 
    NSLog(@"hello has been found!!!"); 
} 
} 

我沒有測試過這一點,但它應該在理論工作。

查看文檔以瞭解如何刪除標點符號並使字符串全部小寫。這應該是非常簡單的。

這裏
+0

跟隨格雷厄姆李說。更有意義的是,沒有意識到這個功能的存在。 – James 2011-04-24 17:30:33

-2

其他的解決方案是好的,但你應該使用正則表達式,

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(hello)*$" 
                    options:NSRegularExpressionCaseInsensitive 
                    error:&error]; 

文檔是在這裏:http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

+3

兩件事:首先你的正則表達式不滿足提問者的要求;其次_why_應該使用「真正」的正則表達式嗎?因爲perl很酷?我並不反對,但沒有理由說這樣的陳述毫無價值。 – 2011-04-24 17:33:30

+0

來吧,不要諷刺。任何類型的匹配應該用正則表達式來完成。正則表達式是語言不可知的。 – sciritai 2011-04-24 17:42:05

+2

@sciritai但_why_?使用'NSRegularExpression'得到的結果是'NSString'的內置搜索不能在少量的行中執行? – 2011-04-24 17:43:12

1
NSRange range = [string rangeOfString:@"hello" options:NSCaseInsensitiveSearch]; 
BOOL notFound = range.location==NSNotFound;