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