随笔 - 字符串常用方法总结

来源:互联网 发布:atheros无线网卡 linux 编辑:程序博客网 时间:2024/06/06 09:31

判断字符串是否为空

- (BOOL)isBlankOrNullString:(NSString *)string {

    if (string == nil || string == NULL) {

        return YES;

    }

    if ([string isKindOfClass:[NSNull class]]) {

        return YES;

    }

    //判断字符串为都为空格

    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {

        return YES;

    }

    return NO;

}


根据字符串来计算Label的宽高

高度

- (float )heightWithString:(NSString *)string font:(UIFont *)font limitWidth:(float )limitWidth

{

    NSDictionary * dictory = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, nil];

    CGSize detSize = CGSizeMake(limitWidth, MAXFLOAT);

    CGRect rect = [string boundingRectWithSize:detSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dictory context:nil];

    return rect.size.height;

}

宽度

- (float )widthWithString:(NSString *)string font:(UIFont *)font limitHeight:(float )limitHeight

{

    NSDictionary * dictory = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, nil];

    CGSize detSize = CGSizeMake(MAXFLOAT, limitHeight);

    CGRect rect = [string boundingRectWithSize:detSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dictory context:nil];

    return rect.size.width;

}


拆分字符串

- (NSArray *)splitsTheString:(NSString *)string withSplitsString:(NSString *)splits

{

    NSArray * array = [string componentsSeparatedByString:splits];

    return array;

}


截取下标为index之前的字符串

- (NSString *)cutOutForeStringToIndex:(NSInteger )index cutString:(NSString *)cutString

{

    if (index > cutString.length) {

        return cutString;

    }

    if (index < 0 || index == 0) {

        return nil;

    }

    NSString * string = [cutString substringFromIndex:index];

    return string;

}

截取下标为index之后的字符串

- (NSString *)cutOutLaterStringFromIndex:(NSInteger )index cutString:(NSString *)cutString

{

    if (index > cutString.length) {

        return nil;

    }

    if (index < 0) {

        return cutString;

    }

    NSString * string = [cutString substringFromIndex:index];

    return string;

}


判断字符串是否包含

- (BOOL)estimateStringHasContainString:(NSString *)containString subString:(NSString *)subString

{

    if (containString.length > 0&& containString.length > subString.length) {

        NSRange range = [containString rangeOfString:subString];

        if (range.location != NSNotFound) {

            return YES;

        }

    }

    return NO;

}

//判断手机号码格式是否正确  http://blog.csdn.net/liu_esther/article/details/51578762

+ (BOOL)valiMobile:(NSString *)mobile

{

    mobile = [mobile stringByReplacingOccurrencesOfString:@" " withString:@""];

    if (mobile.length != 11)

    {

        return NO;

    }else{

        /**

         * 移动号段正则表达式

         */

        NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";

        /**

         * 联通号段正则表达式

         */

        NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";

        /**

         * 电信号段正则表达式

         */

        NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$";

        NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];

        BOOL isMatch1 = [pred1 evaluateWithObject:mobile];

        NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];

        BOOL isMatch2 = [pred2 evaluateWithObject:mobile];

        NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];

        BOOL isMatch3 = [pred3 evaluateWithObject:mobile];

        

        if (isMatch1 || isMatch2 || isMatch3) {

            return YES;

        }else{

            return NO;

        }

    }

}





0 0
原创粉丝点击