2015-01-02 115 views
-1

我想比较一个字符串a1,并得到答案为YES,如果a1包含@“”的任何排列。我怎样才能做到这一点?我尝试了以下,但它不起作用。比较一个字符串与@“”

NSString * a1; BOOL isequals =([a1 compare:@“”options:NSCaseInsensitiveSearch range:NSMakeRange(0,2)] == NSOrederedSame);}}

+3

什么你我通过“@”“”的任何排列?怎么能有一个空间的排列? – rdelmar

+0

@rdelmar它意味着该字符串可以包含任意数量的空格,它是从一个来自txt文件的字符串中获得的一个子字符串,因此为什么是多个空格。 –

回答

-1
NSString *a1; 
NSRange range = [a1 rangeOfString:@" "]; 
if (range.location == NSNotFound) 
{ 
    //not equal 
} 

编辑:使用此人会更适合你的需求

BOOL isEqueal = (range.location != NSNotFound); 

希望这有助于。

+1

不要检查长度。检查范围位置是否为NSNotFound。 – rmaddy

+0

@rmaddy谢谢。你说得对,我解决了。 –

+0

顺便说一句 - 我没有投票,但你的更新答案出现倒退。使用'=='表示如果没有找到空格字符,'if'语句将为真。它应该是'BOOL isequals = range.location!= NSNotFound;'。 – rmaddy

-1
NSString *string; 
if ([string rangeOfString:@" "].location == NSNotFound) { 
    //Do your stuff 
} else { 
    //Do your stuff 
} 

的关键是注意到,rangeOfString:返回NSRange结构,并the documentation says它返回的结构{NSNotFound, 0}


如果你是在iOS 8或OS X优胜美地,你现在可以做:

NSString *string; 
if ([string containsString:@" "]) { 
    //Do your stuff 
} else { 
    //Do your stuff 
} 

+0

这可能无法工作。 “a1”的前两个字符如何比较一个空格?为什么不区分大小写比较空间字符?除此之外,根据OP的评论,目标是看看“a1”是否包含空格。 – rmaddy