【发布时间】:2011-09-20 17:22:25
【问题描述】:
我知道如何在另一个字符串中找到一个字符串,这很容易。但在这种情况下,我想在 allProfessors 字符串中找到 John Smith。所以我想我可以拆分字符串并搜索这两个部分,这可以按我的意愿工作:
NSString *fullName = @"John Smith";
NSArray *parts = [fullName componentsSeparatedByString:@" "];
NSString *allProfessors = @"Smith, John; Clinton, Bill; Johnson, John";
NSRange range = [[allProfessors lowercaseString] rangeOfString:[[parts objectAtIndex:0] lowercaseString]];
NSRange range2 = [[allProfessors lowercaseString] rangeOfString:[[parts objectAtIndex:1] lowercaseString]];
if(range.location != NSNotFound && range2.location != NSNotFound) {
NSLog(@"Found");
} else {
NSLog(@"Not Found");
}
我想知道的是,这是执行此操作的最佳方法还是有更首选的方法来执行我想要的操作?
除此之外,如果我的fullName比我的allProfessors名字长怎么办,比如:
NSString *fullName = @"Gregory Smith";
NSString *allProfessors = @"Smith, Greg; Clinton, Bill; Johnson, John";
我仍然希望 Greg Smith 和 Gregory Smith 有一场比赛。
【问题讨论】:
-
在什么方面最好?表现?可维护性?
-
如果 allProfessors 是 NSArray 而不是 NSString 会更容易。然后你可以转置 fullName 并通过数组搜索。
-
就速度而言,只是以正确的方式做事。
标签: objective-c ios nsstring