11

我试图找到 2 个数字范围的交集,例如...

范围 A 是从 10 到 100,范围 B 是从 60 到 70

有没有一种简单的方法,无需编写大量 if 语句来计算两个范围的交集,因此在本例中为 10。

谢谢,

4

2 回答 2

31

如果您拥有或制作NSRange对象,则NSIntersectionRange函数将为您执行此操作。只要确保在没有交叉点时检查它返回的内容。

NSRange a = NSMakeRange(10, 90);
NSRange b = NSMakeRange(60, 10);
NSRange intersection = NSIntersectionRange(a, b);
if (intersection.length <= 0)
    NSLog(@"Ranges do not intersect");
else
    NSLog(@"Intersection = %@", NSStringFromRange(intersection));
于 2012-04-16T10:53:52.773 回答
3

您可以为此目的使用此方法:

NSRange NSIntersectionRange (
   NSRange range1,
   NSRange range2
);

您可以在这里找到所有信息:

NSIntersectionRange 苹果文档

于 2012-04-16T10:54:00.937 回答