NSString 两个字符串的比较,用 a compare:b 来比,得出的结果分3种
1. 26个字母比较 越靠后面 越大
NSString *a = @"qweqwe";
NSString *b = @"qweasd";
BOOL result = [a compare:b];
if (result == NSOrderedSame) { // NSOrderedSame = 0 完全一样
NSLog(@"a = b");
}else if(result == NSOrderedAscending) // NSOrderedAscending = -1
NSLog(@"a < b");
else{ //NSOrderedDescending = +1
NSLog(@"a > b");
}
2011-07-05 15:04:33.951 Q[5180:207] a > b
2.比较数字或者符号,或者字母 什么都行
NSString *a = @"1.0.30qweqwe";
NSString *b = @"1.0.45qweasd";
BOOL result = [a compare:b];
if (result == NSOrderedSame) { // NSOrderedSame = 0 完全一样
NSLog(@"a = b");
}else if(result == NSOrderedAscending) // NSOrderedAscending = -1
NSLog(@"a < b");
else{ //NSOrderedDescending = +1
NSLog(@"a > b");
}
2011-07-05 15:05:13.175 Q[5209:207] a < b
3.不考虑大小写比较字符串
[a caseInsensitiveCompare:b]
- (void)viewDidLoad
{
NSString *a = @"i love my boyfriend.";
NSString *b = @"I Love My Boyfriend.";
NSLog(@" \n a: %@ \n",a);
NSLog(@" \n b: %@ \n",a);
BOOL result = [a caseInsensitiveCompare:b] == NSOrderedSame;
}
// result = (BOOL) YES;
4.不考虑大小写比较字符串
[a caseInsensitiveCompare:b]
- (void)viewDidLoad
{
NSString *a = @"i love my boyfriend.";
NSString *b = @"Little baby.";
NSLog(@" \n a: %@ \n",a);
NSLog(@" \n b: %@ \n",a);
BOOL result = [a caseInsensitiveCompare:b] == NSOrderedAscending;
}
//result = (BOOL) YES;
5. 有选择的比较大小 [a compare:b options:NSCaseInsensitiveSearch|NSNumericSearch]
- (void)viewDidLoad
{
NSString *a = @"i love my boyfriend.";
NSString *b = @"I Love My Boyfriend.";
NSLog(@" \n a: %@ \n",a);
NSLog(@" \n b: %@ \n",b);
BOOL result = [a compare:b options:NSCaseInsensitiveSearch|NSNumericSearch] == NSOrderedSame;
}
//result = (BOOL)YES;
NSCaseInsensitiveSearch 忽略大小写的比较字符串
NSNumericSearch 比较字符串的个数
NSLiteralSearch 区分大小写,进行完全比较
分享到:
相关推荐
- 使用`compare:`方法,该方法返回三种比较结果:NSOrderedAscending、NSOrderedSame、NSOrderedDescending。 #### NSMutableString `NSMutableString`提供了可变字符串的功能,允许在运行时添加、删除或替换文本...
// returns NSOrderedAscending, NSOrderedSame or NSOrderedDescending ``` **字符串的追加** 追加字符串通常使用`appendString:`或`stringByAppendingString:`方法(对于NSMutableString对象),对于NSString...
OC语言提供了多种方法来对字符串进行排序,例如compare:方法比较两个字符串的大小,可以使用NSOrderedAscending、NSOrderedSame和NSOrderedDescending三个常量来判断字符串的大小关系。 字符串的练习题 1. 求字符...
这里,`compare:`方法会返回三个枚举值:`NSOrderedAscending`(小于),`NSOrderedSame`(等于)或`NSOrderedDescending`(大于)。如果当前时间大于等于开始时间且小于等于结束时间,说明在范围内。 当然,为了使...
- `-compare:`方法用于比较两个`NSDate`对象,返回NSOrderedAscending、NSOrderedSame或NSOrderedDescending。 - `-earlierDate:`和`-laterDate:`方法用于获取两个日期中较早或较晚的一个。 3. **日期格式化** -...
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame) #define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] ...
上述代码中,`compare:`方法是NSNumber对象内置的比较方法,会根据数值大小返回`NSOrderedAscending`、`NSOrderedSame`或`NSOrderedDescending`。 3. **自定义比较规则** 如果需要基于自定义规则排序,Block可以...
这里,比较器block返回`NSOrderedAscending`、`NSOrderedSame`或`NSOrderedDescending`来决定元素的相对顺序。 对于更复杂的排序需求,如按照数字值或者自定义对象的属性,我们可以修改比较器block。比如,如果对象...
这些方法都遵循`NSComparisonResult`的协议,该协议定义了比较操作的结果,可以是`NSOrderedAscending`(小于)、`NSOrderedSame`(相等)或`NSOrderedDescending`(大于)。 在`main`函数中,我们创建了一个不可变...
return NSOrderedDescending; } else if ([obj1 age] [obj2 age]) { return NSOrderedAscending; } else { return NSOrderedSame; } }; ``` 然后使用这个比较器来对数组排序: ```objc [myMutableArray ...
- **NSOrderedAscending**: 字符串A小于字符串B。 - **NSOrderedEqual**: 字符串A等于字符串B。 - **NSOrderedDescending**: 字符串A大于字符串B。 - **NSOrderedSame** 不是 `NSString` 的比较结果之一。 **2.2 ...
这里,我们直接传递了一个匿名代码块作为 `qsort_b` 的第三个参数,该代码块用于比较两个字符串的首字母大小写。 #### 四、使用 Block 进行集合排序 在 Cocoa 框架中,很多方法都支持使用 Block 来进行集合的操作...
- `compare:`:此方法提供更细粒度的比较,返回NSComparisonResult枚举值,表示字符串的顺序关系。当两个字符串相等时,返回NSOrderedSame。 4. **字符串大小写转换** - `lowercaseString`:将字符串全部转换为...