判断字符串是否相等
- 首先不能用== 来判断,因为==判断的存储在这个字符串的对象的值,这样很容易出错,那么我们用isEqualToString来进行判断
int main(int argc, const char * argv[])
{
NSString *str = @"jack";
NSString *str1 = [NSString stringWithFormat:@"jack"];
BOOL res = [str isEqualToString:str1];
if (res == YES)
{
NSLog(@"相等");
}
else
{
NSLog(@"不相等");
}
return 0;
}
字符串大小的比较
NSString *str = @"jack";
NSString *str1 = @"yack";
NSComparisonResult res = [str compare:str1];
if (res == NSOrderedAscending )
{
NSLog(@"第2个大");
}else if (res == NSOrderedDescending)
{
NSLog(@"第1个大");
}else
{
NSLog(@"相等");
}
- 若觉得这些参数不好记,可以用int来接受
NSString *str1 = @"jack";
NSString *str2 = @"jack";
int res = [str1 compare:str2];
switch (res)
{
case -1:
NSLog(@"小于。。。");
break;
case 0:
NSLog(@"等于。。。");
break;
case 1:
NSLog(@"大于。。。");
break;
}
- 看一下忽略大小写的判断
NSString *str = @"jack";
NSString *str1 = @"JAck";
int res = [str compare:str1 options:NSCaseInsensitiveSearch];
if (res > 0)
{
NSLog(@"第一个大");
}else if(res == 0)
{
NSLog(@"相等");
}else
{
NSLog(@"第二个大");
}
后面的参数NSCaseInsensitiveSearch就是忽略大小写的判断
完全匹配 :NSLiteralSearch
NSString *str1 = @"jack";
NSString *str2 = @"Jack";
int res = [str1 compare:str2 options:NSLiteralSearch];
if (res > 0)
{
NSLog(@"第一个大");
}else if(res == 0)
{
NSLog(@"相等");
}else
{
NSLog(@"第二个大");
}
相同格式下,字符串中数字的大小判断
NSString *str1 = @"jpg003";
NSString *str2 = @"jpg005";
int res = [str1 compare:str2 options:NSNumericSearch];
if (res > 0)
{
NSLog(@"第一个大");
}else if(res == 0)
{
NSLog(@"相等");
}else
{
NSLog(@"第二个大");
}
这些都是比较常用的