鍍金池/ 問答/iOS  HTML/ 判斷字符串中是否包含空格代碼的強(qiáng)壯性

判斷字符串中是否包含空格代碼的強(qiáng)壯性

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;

}
現(xiàn)在的疑問是如果字符串中包含表情符號,characterAtIndex: 就會把字符拆分,如果被拆分的表情符號或者其他字符是空格或者換行就會發(fā)生錯誤;

下面是另一種方法

  • (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編碼),不含空格

2017年5月11日 23:03