2

我被困在试图从网站上获取一系列时间。我得到了恰好是这个的数组:

NSArray *rawData = @[@"8:06", @"8:07", @"8:08", @"8:09", @"8:10", @"8:11", @"8:12", @"8:13",@"8:14", @"8:15", @"8:16", @"8:17", @"8:18", @"8:19", @"8:20", .... @"15:05"];

所以数组从 8:06 到 15:05 以 1 分钟为增量。我想要的是我不知道该怎么做,是一个新数组,但从前 5 个多次开始,即:8:10 并且继续增加 5 分钟直到 15:05,所以最终数组的 NSLog 将是这样的:

8:10, 8:15, 8:20, 8:25, ...., 10:45, 10:50, 10:55, 11:00, 11:05, ...., 14:55, 15:00, 15:05

所以有什么想法???

4

2 回答 2

7

在这种特殊情况下,您只需检查时间字符串是否以“0”或“5”结尾:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF ENDSWITH '0' OR SELF ENDSWITH '5'"];
NSArray *filteredData = [rawData filteredArrayUsingPredicate:predicate];

(请注意,这是 5 的倍数的特殊解决方案。您可以对 10 的倍数进行类似的处理,但在其他情况下(例如 3 或 7 的倍数)将不起作用。)

于 2013-10-24T07:15:48.310 回答
0

您可以尝试以下另一种方法:-

NSArray *arr=[NSArray arrayWithObjects:@"8.01",@"8.05",@"8.06",@"8.10",@"8.02",nil];
NSMutableArray *arrMut=[NSMutableArray array];
for(NSString *str in arr)
{
    if ([str length]>3)
    {
    NSString *str1=[str substringFromIndex:3];
    if ([str1 intValue]==5 || [str1 intValue]==0)
        [arrMut addObject:str];
    }
}
NSLog(@"%@",arrMut);
于 2013-10-24T07:46:06.520 回答