获取字符串中字母或者数字个数的两种便捷方法

  1. 通过isnumber自带函数进行数字计数
  2. 使用正则表达式进行字符串筛选计数

一、isnumber函数

  • 获得字符串中的数字个数, isnumber提供了判断字符为数字的机制
- (NSInteger)numberCount {
    NSInteger count = 0;
    for (NSInteger i = 0; i < self.length; ++i) {
        if (isnumber([self characterAtIndex:i])) {
            //  isnumber提供了判断字符为数字的机制
            count++;
        }
    }
    return count;
}
  • 获得仅包含数字的字符串
- (NSString *)numberString {
    NSMutableString *string = [NSMutableString string];
    for (NSInteger i = 0; i < self.length; ++i) {
        if (isnumber([self characterAtIndex:i])) {
            [string appendFormat:@"%c", [self characterAtIndex:i]];
        }
    }
    return string;
}

二、正则表达式

- (NSInteger)countByRegex {
    //  根据需要筛选字母、数字选定筛选语句
    NSString *numberRegexStr = @"[0-9]";
//    NSString *symbolRegexStr = @"[a-zA-Z]";
    
    NSRegularExpression *regularExpression = [[NSRegularExpression alloc] initWithPattern:numberRegexStr
                                                                                  options:NSRegularExpressionCaseInsensitive
                                                                                    error:nil];
    NSArray *resultArray = [regularExpression matchesInString:self
                                                      options:0
                                                        range:NSMakeRange(0, self.length)];
    return resultArray.count;
}

只想日后回头看看来时的路,能发现自己并不是一无所有。

你可能感兴趣的:(获取字符串中字母或者数字个数的两种便捷方法)