2013-10-02 36 views
0

我需要獲取NSString的單詞或音節的位置(索引)。我很抱歉,我無法發佈任何代碼,因爲我不知道從哪裏開始。我正在使用網絡服務和服務將回到我的單詞或音節的句子,並會告訴我任何顏色,我必須改變單詞的顏色在句子中。我想到了如何改變角色的顏色,但我需要知道它的索引。我會非常感謝任何線索或幫助。 在此先感謝。如何獲得NSString中單詞或音節的索引

+0

你有沒有費心去看看NSString的規格? –

回答

0

枚舉詞索引:

NSString *s = @"How to get index of word or syllable in NSString"; 
__block NSUInteger i = 0; 
[s enumerateSubstringsInRange:NSMakeRange(0, [s length]) 
         options:NSStringEnumerationByWords 
        usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { 
         NSLog(@"%lu %@", i++, substring); 
        }]; 

,將打印

0 How 
1 to 
2 get 

的等效方法是:

NSUInteger words = 0; 
NSScanner *scanner = [NSScanner scannerWithString: s]; 
NSString *capture; 
NSCharacterSet *whiteSpace = [NSCharacterSet whitespaceAndNewlineCharacterSet]; 
while ([scanner scanUpToCharactersFromSet:whiteSpace intoString:&capture]){ 
    NSLog(@"%lu %@", words++, capture); 
} 

但依賴於空間,標籤和紐林es作爲分隔符。第一種方式更好。

+0

謝謝你,這工作完美,但這不是我想要的,例如我需要獲得「索引」單詞的開始和結束索引在「如何獲取單詞或音節的索引在NSString「這是可能的? –

+0

NSRange range = [string rangeOfString:@「index」options:NSCaseInsensitiveSearch]; NSLog(@「start =%lu,end =%lu」,range.location,range.location + [@「index」length]); – Jano

+0

非常感謝你的工作,我接受它作爲答案。 –

3

要獲得一個字符串的話,您可以撥打:

NSString *string = @"How to get index"; 
    NSArray *words = [string componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
    NSLog(@"%lu",[words indexOfObject: @"get"]); // outputs 2 (starts at 0) 

通過音節分離依賴於語言和多,更難做。

+0

謝謝我會試試這個。 –

+0

這個答案對我投票也是有幫助的。謝謝。 –

+0

沒問題。並感謝您的編輯,Jano :) –

相關問題