如何检查NSString中的每个字符?

时间:2017-12-20 14:52:03

标签: objective-c for-loop nsstring

我有一个NSString,其中包含一个数字,如9823.现在我需要迭代该字符串并根据数字打印一些语句。例如,对于数字8,我应该打印(“A”),对于数字9 :(“B”),依此类推。为了检查,我将使用switch语句,但我不知道如何遍历数字中的每个字符(同样,它是一个NSString)。在Swift我可以使用for in循环,但因为NSString在Objective-C中不被视为数组,所以我不能在这里使用它,所以我想知道是否有任何for inObjective-C的替代品,可与NSString一起使用。我刚学习Objective-C,所以我将不胜感激。

1 个答案:

答案 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)可以提供帮助。此外,正则表达式是一种在任何语言的任何地方都有用的技能。