繁体   English   中英

如何在iPhone应用程序中从NSString获取整数值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM