IOS/Objective-C:查找字符串中单词的索引
Posted
技术标签:
【中文标题】IOS/Objective-C:查找字符串中单词的索引【英文标题】:IOS/Objective-C: Find Index of word in String 【发布时间】:2017-04-24 14:38:13 【问题描述】:我正在尝试返回字符串中单词的索引,但无法找到一种方法来处理找不到它的情况。以下不起作用,因为 nil 不起作用。尝试了 int、NSInteger、NSUInteger 等的每一种组合,但找不到与 nil 兼容的组合。有没有办法做到这一点?谢谢
-(NSUInteger) findIndexOfWord: (NSString*) word inString: (NSString*) string
NSArray *substrings = [string componentsSeparatedByString:@" "];
if([substrings containsObject:word])
int index = [substrings indexOfObject: word];
return index;
else
NSLog(@"not found");
return nil;
【问题讨论】:
看文档developer.apple.com/reference/foundation/nsarray/…:“如果数组中没有一个对象等于anObject,则返回NSNotFound。” 【参考方案1】:使用NSNotFound
,如果在substrings
中找不到word
,则indexOfObject:
将返回。
- (NSUInteger)findIndexOfWord:(NSString *)word inString:(NSString *)string
NSArray *substrings = [string componentsSeparatedByString:@" "];
if ([substrings containsObject:word])
int index = [substrings indexOfObject:word];
return index; // Will be NSNotFound if "word" not found
else
NSLog(@"not found");
return NSNotFound;
现在当您调用findIndexOfWord:inString:
时,检查NSNotFound
的结果以确定它是否成功。
您的代码实际上可以更简单地编写为:
- (NSUInteger)findIndexOfWord:(NSString *)word inString:(NSString *)string
NSArray *substrings = [string componentsSeparatedByString:@" "];
return [substrings indexOfObject: word];
【讨论】:
以上是关于IOS/Objective-C:查找字符串中单词的索引的主要内容,如果未能解决你的问题,请参考以下文章