2010-12-15 8 views
2

다음과 같은 시간 문자열이 있습니다 : 5:34 pm. 5을 잡고 변수에 넣고 34을 잡고 변수에 넣으려고합니다. 이것이 가능한가?콜론 뒤에 숫자를 집어 넣으시겠습니까?

미리 감사드립니다.

+0

질문에 대한 정확한 답변이 있지만 시간을 구문 분석하려는 경우 - [NSDateFormatter dateFromString :]을 참조하십시오. – Ken

+0

@Ken 사용 해보았지만 문자열을 파싱하기 만하면 필요한 것이 전부였습니다. 그래도 고마워! –

답변

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

아름다운! 내가 필요한 것. 감사합니다, 최대한 빨리 답변을 수락합니다. –

+0

문제가 없습니다! 나는이 방법을 찾는 것을 기억한다. :-) – Jumhyn

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 스타일의 메소드를 사용해야하는지 잘 모르겠습니까? –

+0

항상 콜론이있을 것입니다. –

+0

또한 다른 방법을 사용하는 경우에도 형식이 잘못된 euqations를 쉽게 확인할 수 있습니다. splitString.count> 1을 확인하십시오. 또한 더 많은 제어가 필요한 경우 NSScanner를 사용하는 것이 좋습니다. – mohsenr