我的意图是分析用户在文本字段中的输入并检查他是否使用了任何符号。
例如,用户的输入是“/ardv/*k”,我需要一个变量来表示用户输入了 3 个符号。
我不明白如何使用 NSRange 来搜索字符串,因为它会在找到第一个匹配项时立即停止。
此外,NSSet 与 characterAtIndex 选择器不兼容。
isEqualTo:没用。
这是我所做的,但我想知道如果可能的话,如何使这段代码更简单:
...
NSString *testThisString = @"/ardv/*k";
NSCharacterSet *unknownFlags1 = [NSCharacterSet punctuationCharacterSet];
NSCharacterSet *unknownFlags2 = [NSCharacterSet symbolCharacterSet];
NSCharacterSet *unknownFlags3 = [NSCharacterSet whitespaceCharacterSet];
int count = 0;
for (int i = 0; i < [testThisString length]; i++) {
if ([unknownFlags1 characterIsMember:[testThisString characterAtIndex:i]] |
[unknownFlags2 characterIsMember:[testThisString characterAtIndex:i]] |
[unknownFlags3 characterIsMember:[testThisString characterAtIndex:i]]) {
count++;
}
}
NSLog(@"There are %d unknowns", count);
...