如何在 objective-c 的字符串数组中找到最大的数值?
How to find greatest numeric value in Array of string in objective-c?
我有一个字符串数组
NSArray *myNumbers = @[@"0.0454", @"-1.3534", @"0.345",
@"65", @"-0.345", @"1.35"];
如何从这个字符串数组中找到最大的数值 (65)?
是否有任何默认方法或解决方法?
在转换为浮点数的同时对其进行排序,然后根据您的排序获取第一个或最后一个值
NSString *max = [myNumbers sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
float first = [(NSString*)a floatValue];
float second = [(NSString*)b floatValue];
if (first > second)
return NSOrderedAscending;
else if (first < second)
return NSOrderedDescending;
return NSOrderedSame;
}][0];
或
NSString *max = [[myNumbers sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
return [(NSString *)a compare:(NSString *)b options:NSNumericSearch];
}] lastObject];
我有一个字符串数组
NSArray *myNumbers = @[@"0.0454", @"-1.3534", @"0.345",
@"65", @"-0.345", @"1.35"];
如何从这个字符串数组中找到最大的数值 (65)?
是否有任何默认方法或解决方法?
在转换为浮点数的同时对其进行排序,然后根据您的排序获取第一个或最后一个值
NSString *max = [myNumbers sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
float first = [(NSString*)a floatValue];
float second = [(NSString*)b floatValue];
if (first > second)
return NSOrderedAscending;
else if (first < second)
return NSOrderedDescending;
return NSOrderedSame;
}][0];
或
NSString *max = [[myNumbers sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
return [(NSString *)a compare:(NSString *)b options:NSNumericSearch];
}] lastObject];