use*_*054 6 if-statement objective-c nsarray ios
我需要一种方法来知道数组中的一个字符串对象中是否包含字符"@".以下代码显然不起作用,因为它检查对象是否只有@符号而不是检查对象是否包含@符号.例如,如果用户有test@test.com,我的if语句将不会检测到它.我需要查看用户是否有电子邮件.我尝试研究如何在stackoverflow上实现这一点,但没有运气.任何提示或建议将不胜感激.
if([answer containsObject:@"@"]){
/// do function.
}
Run Code Online (Sandbox Code Playgroud)
您可以检查NSArray是否包含对象containsObject.如果它是一个表示为单字符字符串的字符数组,那么代码很简单:
NSArray *array = @[@"a", @"b", @"c", @"d"];
BOOL contains = [array containsObject:@"c"];
Run Code Online (Sandbox Code Playgroud)
由于NS集合只包含对象,所以没有像'c'char那样的标量类型的NSArray.最接近一组字符的是a NSString,它有多种方法可以告诉你字符是否存在.最简单的看起来像这样:
NSString *string = @"test@test.com";
NSRange range = [string rangeOfString:@"c"];
BOOL contains = range.location != NSNotFound;
Run Code Online (Sandbox Code Playgroud)
您必须遍历数组中的每个NSString并检查它是否包含子字符串.
此自定义方法显示如何:
//assumes all objects in the array are NSStrings
- (BOOL)array:(NSArray *)array containsSubstring:(NSString *)substring {
BOOL containsSubstring = NO;
for (NSString *string in array) {
if ([string rangeOfString:substring].location != NSNotFound) {
containsSubstring = YES;
break;
}
}
return containsSubstring;
}
Run Code Online (Sandbox Code Playgroud)
用法:
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:3];
[array addObject:@"hi"];
[array addObject:@"yo"];
[array addObject:@"test@test.com"];
BOOL containsSubstring = [self array:array containsSubstring:@"@"];
Run Code Online (Sandbox Code Playgroud)