我有一个NSString
,其中包含一个数字,如9823.现在我需要迭代该字符串并根据数字打印一些语句。例如,对于数字8,我应该打印(“A”),对于数字9 :(“B”),依此类推。为了检查,我将使用switch
语句,但我不知道如何遍历数字中的每个字符(同样,它是一个NSString)。在Swift
我可以使用for in
循环,但因为NSString
在Objective-C中不被视为数组,所以我不能在这里使用它,所以我想知道是否有任何for in
中Objective-C
的替代品,可与NSString
一起使用。我刚学习Objective-C
,所以我将不胜感激。
答案 0 :(得分: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)可以提供帮助。此外,正则表达式是一种在任何语言的任何地方都有用的技能。