나는 9823과 같은 숫자를 포함하는 NSString
을 가지고 있습니다. 이제 그 문자열을 반복하고 숫자를 기반으로 한 일부 문장을 인쇄해야합니다. 예를 들어, 숫자 8의 경우 9 자릿수 ("B")로 인쇄해야합니다 ("A"). 확인을 위해 switch
문을 사용 하겠지만 숫자의 각 문자를 반복하는 법을 모르겠습니다 (다시 NSString). Swift
에서는 for in
루프를 사용할 수 있지만 NSString
은 Objective-C에서 배열로 간주되지 않으므로 여기서는 사용할 수 없습니다. 따라서 for in
에 대한 대체 방법이 과 함께 사용되는 Objective-C
에 있는지 궁금합니다. . 나는 단지 Objective-C
을 배우는 중이므로 어떤 도움을 주시면 감사하겠습니다.NSString의 각 문자를 확인하는 방법은 무엇입니까?
0
A
답변
0
NSRegularExpression
여기에 아주 잘 맞는 것 :
NSString *yourString = @"Greetings SEN 5241, LUH 3417 and THX 1138.";
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(\\d*?8\\d*)"
options:kNilOptions
error:&error];
NSAssert(!error, @"%@", error);
[regex enumerateMatchesInString:yourString
options:kNilOptions
range:NSMakeRange(0, yourString.length)
usingBlock:^(NSTextCheckingResult * _Nullable result, NSMatchingFlags flags, BOOL * _Nonnull stop) {
NSLog(@"%@", [yourString substringWithRange:result.range]);
}];
도움이 될 수 있습니다 (예 : RegExr 등) 아주 좋은 온라인 정규 표현식 놀이터가 있습니다. 또한 정규 표현식은 모든 언어로 어디서나 유용하게 사용할 수있는 기술입니다.
'rangeOf :'를 사용하면'8 '이 있는지 없는지 쉽게 찾을 수 있지만 https://stackoverflow.com/questions/4158646/most-efficient-way-toterate-over-all -the-chars-in-an-nsstring? – Larme