检查nsstring是否与另一个字符串匹配

Bap*_*apu 2 iphone cocoa cocoa-touch objective-c nsstring

假设我有一个字符串"167282".如何检查字符串是否包含"128"?是否有任何条款可以知道匹配第一个字符串的第二个字符串的百分比?(如果第二个字符串的所有字符都存在于第一个字符串中.)请提前帮助和thanx.

Bry*_*nry 6

使用以下内容:

NSString *compareString = @"128";
NSCharacterSet *compareCharSet = [NSCharacterSet characterSetWithCharactersInString:@"167282"];

NSUInteger strLen = [compareString length];
NSUInteger matchingCount = 0;
for (NSUInteger i = 0; i < strLen; ++i) {
  if ([compareCharSet characterIsMember:[compareString characterAtIndex:i]])
    ++matchingCount;
}

float percentMatching = matchingCount/(float)strLen;
Run Code Online (Sandbox Code Playgroud)

其中matchingCount是compareString中与@"167282"中的字符匹配的字符数,percentMatching将是compareString中匹配的总字符的百分比.就我所知,这是你对你的问题的意图 - 百分比匹配的概念不会有任何其他意义.


Ste*_*son 5

您可以使用NSString's rangeOfString方法查找字符串是否包含另一个字符串,如Apple Mailing Lists上此问题的答案所示.

if ([@"167282" rangeOfString:@"128"].location != NSNotFound) {
    NSLog(@"String contains '128'.");
}
else {
    NSLog(@"String doesn't contain '128'.");
}
Run Code Online (Sandbox Code Playgroud)