NSString的类目中的判断方法如下:
-
(BOOL)isNoBlack {
NSCharacterSet* charSet = [NSCharacterSet whitespaceAndNewlineCharacterSet];
for (int i = 0; i < self.length ; i++) {unichar ch = [self characterAtIndex:i]; if ([charSet characterIsMember:ch]) { return NO; }
}
return YES;
}
现在的疑问是如果字符串中包含表情符号,characterAtIndex: 就会把字符拆分,如果被拆分的表情符号或者其他字符是空格或者换行就会发生错误;
下面是另一种方法
-
(BOOL)isContainBlack {
NSRange blackRange = [self rangeOfCharacterFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if(blackRange.location == NSNotFound) {return NO;
}else{
return YES;
}
}
不知各位有没有更好的思路?或者对上面的方法的看法
麻烦
NSString提供了
- (BOOL)containsString:(NSString *)str API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
方法判断特定字符串存在,要判空格使用[str containsString:@" "]
,判回车使用[str containsString:@"\n"]
对于表情类如kaomoji(O(∩_∩)O~实际是文字),如果是O(∩ _ ∩)O~,也会判断出包含空格
emoji(?实际是Unicode编码),不含空格