[英]How can I get an integer value from NSString in an iPhone application?
NSString * str=[zoneDict objectForKey:@"name"];
NSLog(@"==========string zone::==========%@",str);
// str="(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersbur";
如何从上面的字符串中获取3:00值?
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);
除了尝试从字符串中提取时间偏移之外,还有什么方法可以将实际的时区数据存储在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
在我看来,使用正则表达式是更好的选择(如果您仅被迫提取“ 3”)。 正则表达式字符串将包含“ \\ d?”之类的内容。 但不要在此引用我,您必须查找确切的字符串。 也许这里有人可以提供确切的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.