将字符串网址与字符串值进行比较
问题描述:
如何搜索字符串值来查找字符串值?将字符串网址与字符串值进行比较
字符串URL:
http://localHost:8070/serviceCase=ActiveService
http://localHost:8070/serviceCase=KoplService
字符串值:
ActiveService
我需要打印确实有 “主动服务” 的网址!
答
你也许可以做这样的事情(如果您的网址确实是一个字符串):
if ([url rangeOfString:value].location == NSNotFound){
dosomething
} else {
doSomethingElse
}
答
if([string hasSuffix:@"ActiveService"]) {
// Do your stuff
}
答
NSString *url = @"http://localHost:8070/serviceCase=ActiveService";
if ([url rangeOfString:@"ActiveService"].location != NSNotFound) {
NSLog(@"URL has the string");
}
答
我推荐下面的NSString类别。
NSString+Extend.h
#import <Foundation/Foundation.h>
@interface NSString (Extend)
- (BOOL)containsString:(NSString *)aString ignoringCase:(BOOL)flag;
- (BOOL)containsString:(NSString *)aString;
@end
NSString+Extend.m
#import "NSString+Extend.h"
@implementation NSString (Extend)
- (BOOL)containsString:(NSString *)aString
{
return [self containsString:aString ignoringCase:NO];
}
- (BOOL)containsString:(NSString *)aString ignoringCase:(BOOL)flag
{
unsigned mask = (flag ? NSCaseInsensitiveSearch : 0);
return [self rangeOfString:aString options:mask].length > 0;
}
@end
#import "NSString+Extend.h"
NSString *url = @"http://localHost:8070/serviceCase=ActiveService";
NSString *findString = @"ActiveService";
BOOL isContains = [url containsString:findString];
if(isContains)
{
//do stuff
}
else
{
//do stuff
}
这是一个很好的解决方案,但它确实取决于必须做字符串比较的数量。如果我们只是谈论代码中的几个地方,我认为你的解决方案有点矫枉过正。 – Jesper 2012-08-07 11:50:32
我知道。但是,当我测试性能比较rangeOfString没有OverKill。当稍后使用KMP算法时,我将创建类别。 – 2012-08-07 11:55:43