字符串类别 (常用的)

以下方法都是在类别中使用 :

  • 给定{xx}yyyy{zzzz}tttt 返回 [{xx}, yyyy,{zzzz}, tttt] 字符串数组
/** 给定{xx}yyyy{zzzz}tttt 返回 [{xx}, yyyy,{zzzz}, tttt]  字符串数组 */
+(NSArray *)matching:(NSString *)messgae  targetDataArr:(NSMutableArray *)targetArr{
    NSString *desStr;
    NSScanner *scanner = [NSScanner scannerWithString:messgae];
    NSMutableArray *array = [NSMutableArray array];
    
    /** 扫描给出的字符串 */
    while (!scanner.isAtEnd) {
        if ([scanner scanUpToString:@"{" intoString: &desStr]) {
            NSString *resutlStr = [desStr stringByReplacingOccurrencesOfString:@"}" withString:@""];
            !(resutlStr && resutlStr.length) ? :[array addObject:resutlStr];
        }
        if ([scanner scanUpToString:@"}" intoString: &desStr]) {
            NSString *resutlStr = [desStr stringByAppendingString:@"}"];
            !(resutlStr && resutlStr.length && ![resutlStr isEqualToString:@"{}"]) ? :[array addObject:resutlStr];
        }
    }
    return array;
}
- (void) testMsg:(NSString *)message {
NSArray *array = [NSString matching:message];
    for (NSString *tempStr in array) {
        NSString *resultStr = tempStr;
        if ([tempStr hasPrefix:@"{"] && [tempStr hasSuffix:@"}"]) {
            resultStr = [tempStr stringByReplacingOccurrencesOfString:@"{" withString:@""];
            resultStr = [resultStr stringByReplacingOccurrencesOfString:@"}" withString:@""];
           
            // - {} 中的文字
        }else{
           // - 没有{}的文字
        }
    }
}
  • 判断输入的字符串是不是有效的数字
/** 判断字符串是不是有效的数字 */
+ (BOOL)validateNumber:(NSString*)number{
    BOOL res = YES;
    NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
    int i = 0;
    while (i < number.length) {
        NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
        NSRange range = [string rangeOfCharacterFromSet:tmpSet];
        if (range.length == 0) {
            res = NO;
            break;
        }
        i++;
    }
    return res;
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if (textField == self.countItemView.textFiled) {
        BOOL shouldChange = [NSString validateNumber:string];
        shouldChange ? :  [[ControllerTool getCurrentVC].view showTost:@"只能填入数字哦~"];
        return shouldChange;
    }
    return YES;
}
  • 根据宽度 截取字符串
/** 根据宽度 截取字符串 */
-(NSString *)substringWithWidth:(CGFloat)width textAttributes:(NSDictionary *)attributes{
    
    __block NSString *returnStr;
    dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        if ([self sizeWithAttributes:attributes].width <= width) {
            returnStr = self;
            return;
        }
        NSString *constStr = @"...";
        CGFloat constWidth = [constStr sizeWithAttributes:attributes].width;
        CGFloat textIndex = 0;
        CGFloat textWidth = 0;
        NSString *currentStr = @"";
        while (textWidth < width - constWidth) {
            currentStr = [self substringToIndex:textIndex];
            textWidth = [currentStr sizeWithAttributes:attributes].width;
            textIndex ++;
        }
        returnStr = [currentStr stringByAppendingString:constStr];
    });
    return returnStr;
}
  • 截取字符串 string:你好呀 maxLength: 3 return:你好呀 maxLength:2 retrun 你好…
+ (NSString *)cropString:(NSString *)string maxLength:(NSUInteger)maxLength{
    if (string.length <= maxLength) {
        return string;
    }
    return [NSString stringWithFormat:@"%@...", [string substringToIndex:maxLength - 1]];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值