NSString * str=[zoneDict objectForKey:@"name"];
NSLog(@"==========string zone::==========%@",str);
// str="(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersbur";
如何从上述字符串中获取3:00值?如何在iPhone应用程序中从NSString获取整数值?
NSString * str=[zoneDict objectForKey:@"name"];
NSLog(@"==========string zone::==========%@",str);
// str="(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersbur";
如何从上述字符串中获取3:00值?如何在iPhone应用程序中从NSString获取整数值?
NSString *str = @"(GMT -3:00) Baghdad, Riyadh, Moscow, St. Petersbur";
NSRange endRange = [str rangeOfString:@")"];
NSString *timeString = [str substringWithRange:NSMakeRange(5, endRange.location-5)];
NSRange separatorRange = [timeString rangeOfString:@":"];
NSInteger hourInt = [[timeString substringWithRange:NSMakeRange(0, separatorRange.location)] intValue];
NSLog(@"Hour:%d",hourInt);
非常感谢你..... – 2012-01-13 12:40:22
唯一的事情是,NSInteger实际上不是int^_ ^我认为它实际上很长。 – 2014-02-19 06:29:02
而不是试图提取时间从字符串偏移,有没有你可以存储在你的zoneDict
实际时间段数据什么办法?例如,您可以存储NSTimeZone
实例。
如果您拥有的只是字符串,则可以使用NSRegularExpression
对象,而使用正则表达式提取相关信息。
如果你可以进一步解释你想要做什么,那么可能有另一种方法来实现你想要的。
我喜欢用-[NSString componentsSeparatedByString]:
NSString *str = @"(GMT -3:00) Baghdad, Riyadh, Moscow, St. Petersbur";
NSArray *myWords = [myString componentsSeparatedByString:@")"];
NSString *temp1 = [myWords objectAtIndex:0];
if ([temp1 rangeOfString:@"-"].location == NSNotFound) {
NSArray *temp2 = [temp1 componentsSeparatedByString:@"+"];
NSString *temp3 = [temp2 objectAtIndex:1];
NSLog(@"Your String - %@", temp3);
}
else {
NSArray *temp2 = [temp1 componentsSeparatedByString:@"-"];
NSString *temp3 = [temp2 objectAtIndex:1];
NSLog(@"Your String - %@", temp3);
}
输出:
Your String - 3:00
错误。如果该值在+ GMT值中更改,则代码不起作用。 – 2012-01-13 12:51:54
是啊,你写的是你必须检查 - 或+在字符串中。我现在正在解决 – Hiren 2012-01-13 12:57:02
使用正则表达式,在我看来是更好的选择(如果你被迫提取 '3' 只)。正则表达式字符串将包含类似“\ d?”的内容但不要在此引用我,你必须查找确切的字符串。也许有人在这里可以提供确切的字符串。
嗯,我猜你并不是真的想要一个整数;你需要一个符号(+),一个整数小时(3)和一个整数分钟(00)。它是否正确?在解析字符串之前,'zoneDict'的类型是什么?时区数据结构通常以一种更可用的形式提供偏移量,而不仅仅是一个字符串,但是'zoneDict'中只有一个字符串吗? – CRD 2012-01-13 09:53:17