2010-12-15 71 views
2

我有一個時間字符串,看起來像這樣:5:34 pm。我想抓住5,把它放在一個變量中,並抓住34並將其放入一個變量中。這可能嗎?冒號後抓取數字?

在此先感謝!

+0

你對你的問題有很好的文字回答,但是如果你想解析一段時間,請看 - [NSDateFormatter dateFromString:]。 – Ken 2010-12-15 04:08:17

+0

@Ken我嘗試過使用它,但爲了我的需要,簡單地解析字符串是我所需要的。雖然謝謝! – 2010-12-15 04:29:22

回答

4
NSArray *splitString = [timeString componentsSeparatedByString:@":"]; 
if ([splitString count] > 1 { 
    NSString *hours = [splitString objectAtIndex:0]; 
    NSString *minutes = [splitString objectAtIndex:1]; 
} 
else { 
    //improperly formatted string 
} 
+0

美麗!正是我需要的。謝謝,一旦可用,我們會盡快接受答案。 – 2010-12-15 01:57:17

+0

沒問題!我記得尋找這種方法的方式。 :-) – Jumhyn 2010-12-15 02:13:41

6

注意上面列出的NSString技術。如果你的字符串缺少一個冒號,你會崩潰得到objectAtIndex:1。 (我會對此發表評論,但我缺乏足夠的代表)。

這應該更健壯一點。

int hours, minutes; 
if (2 == sscanf([timeString UTF8String], "%d:%d", &hours, &minutes)) 
{ 
    // congratulations, you did it 
} 
else 
{ 
    // the string was malformed 
} 
+0

不知道我是否應該使用C風格的函數或Objective-C風格的方法? – 2010-12-15 02:01:23

+0

很確定它會一直冒號。 – 2010-12-15 02:01:54

+0

也是如此,即使在其他方法中,也可以輕鬆檢查格式錯誤的euqations:只需檢查splitString.count> 1。另外,如果你需要更多的控制,我建議你看'NSScanner'。 – mohsenr 2010-12-15 02:08:51