如何汇总 NSArray 中的所有数字?
How can summarize all numbers in NSArray?
我有带字符串的 NSArray - 00:02:34、02:05:17 所以我需要计算数组中的所有字符串并得到结果:2 hours:7 分 51 秒。
我试过这个:
// 从数组中获取第一个字符串,并通过以下方式分隔三个对象:
for (NSDictionary *dic in dicts) {
NSString *string = dic[@"duration"]; (my type of string 00:00:00)
NSArray *components = [string componentsSeparatedByString:@":"];
NSInteger minutes = [components[1] integerValue];
NSInteger seconds = [components[2] integerValue];
NSInteger hour = [components[0] integerValue];
}
但是我怎样才能对这个日期求和以获得结果呢?感谢您的帮助。
您可以通过几种不同的方式来解决这个问题。
就个人而言,我会遍历 dicts
并将每个 duration
字符串转换为 seconds 并在循环。
然后,您可以轻松地将累计秒数转换回小时、分钟和秒,并在循环完成后将它们组合成一个字符串:
int totalSeconds = 0;
for (NSDictionary * dic in dicts) {
NSString *string = dic[@"duration"];
NSArray *components = [string componentsSeparatedByString:@":"];
totalSeconds += (int) [components[0] integerValue] * 60 * 60;
totalSeconds += (int) [components[1] integerValue] * 60;
totalSeconds += (int) [components[2] integerValue];
}
int hour = totalSeconds / 3600;
int mins = (totalSeconds % 3600) / 60;
int secs = totalSeconds % 60;
NSString * totalString = [NSString stringWithFormat:@"%d:%d:%d", hour, mins, secs];
注意:您必须编写一些代码来组成字符串并适当地包含零,其中任何值都小于 10。
我有带字符串的 NSArray - 00:02:34、02:05:17 所以我需要计算数组中的所有字符串并得到结果:2 hours:7 分 51 秒。
我试过这个:
// 从数组中获取第一个字符串,并通过以下方式分隔三个对象:
for (NSDictionary *dic in dicts) {
NSString *string = dic[@"duration"]; (my type of string 00:00:00)
NSArray *components = [string componentsSeparatedByString:@":"];
NSInteger minutes = [components[1] integerValue];
NSInteger seconds = [components[2] integerValue];
NSInteger hour = [components[0] integerValue];
}
但是我怎样才能对这个日期求和以获得结果呢?感谢您的帮助。
您可以通过几种不同的方式来解决这个问题。
就个人而言,我会遍历 dicts
并将每个 duration
字符串转换为 seconds 并在循环。
然后,您可以轻松地将累计秒数转换回小时、分钟和秒,并在循环完成后将它们组合成一个字符串:
int totalSeconds = 0;
for (NSDictionary * dic in dicts) {
NSString *string = dic[@"duration"];
NSArray *components = [string componentsSeparatedByString:@":"];
totalSeconds += (int) [components[0] integerValue] * 60 * 60;
totalSeconds += (int) [components[1] integerValue] * 60;
totalSeconds += (int) [components[2] integerValue];
}
int hour = totalSeconds / 3600;
int mins = (totalSeconds % 3600) / 60;
int secs = totalSeconds % 60;
NSString * totalString = [NSString stringWithFormat:@"%d:%d:%d", hour, mins, secs];
注意:您必须编写一些代码来组成字符串并适当地包含零,其中任何值都小于 10。