2011-05-02 6 views
0

사이에있는 문자열을 가져와야합니다 (및). 예를 들어 "name (123)"과 같은 문자열이 있습니다. 나는 (와) 사이에 123이라는 값을 가져야한다.iPhone에서 문자열을 분리하는 방법

+1

NSString 설명서가 유용합니다. 메소드 "subStringFromIndex/.. ToIndex/.. inRange –

+0

[NSString Class Reference] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/)에서 살펴보십시오. 참조/NSString.html) 하위 섹션 문자 및 하위 문자열 찾기 및 문자열 나누기 – DreamOfMirrors

답변

2
NSString *string = @"name(123)"; 
NSString *seperatorCharsString = @"()"; 
NSCharacterSet *seperatorCharSet = [NSCharacterSet characterSetWithCharactersInString:seperatorCharsString]; 
NSArray *components = [string componentsSeparatedByCharactersInSet:seperatorCharSet]; 
NSString *number = [components lastObject]; 
+0

@Black Frog이 당황스런 나사를 위로 가르쳐 주셔서 감사합니다. 내 대답을 수정 해 드리겠습니다. :) –

+0

+1 대답을 정정하십시오. –

2

당신은 문자열을 추출하는 정규 표현식을 사용해야합니다, 당신이 할 수있는 블록 (iOS4.0부터) NSRegularExpression이 같은

뭔가 :

NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:@"\(.*?\))" options:NSRegularExpressionCaseInsensitive error:nil]; 

[reg enumerateMatchesInString:<YOUR_STRING> options:0 range:NSMakeRange(0, [<YOUR_STRING> length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){ 
    for (int i=0; i < match.numberOfRanges; i++) { 
     NSRange range = [match rangeAtIndex:i]; 
     NSString *extractedString = [<YOUR_STRING> substringWithRange:range]; 
    } 
}]; 

희망이 도움이, Vincent

관련 문제