美文网首页
NSString 没3位分割 ,

NSString 没3位分割 ,

作者: 林希品 | 来源:发表于2022-09-19 10:25 被阅读0次

方法

eg.数字以逗号隔开 例:123,321.11:

@interface NSString (NumberSplit)

/**
 *数字以逗号隔开 例:123,321.11
 */
- (NSString *)xp_numberSplitWithComma;
/**
 *@param puctutation 符合
 *数字以某个符合隔开 例:123,321.11
 */
- (NSString *)xp_numberSplitWithPunctutaion:(NSString *)puctutation;
/**
 *XX.XX万     XX.XX亿
 */
- (NSString *)subscribeCountUnit;
@end

@implementation NSString (NumberSplit)

- (NSString *)xp_numberSplitWithComma{
    if ([self private_isNumber]) {
        NSMutableString *muString = [NSMutableString stringWithString:self];
        return [self private_insert:muString withPunctuation:@","];
    }else{
        return self;
    }
}
- (NSString *)xp_numberSplitWithPunctutaion:(NSString *)puctutation{
    if ([self private_isNumber]) {
         NSMutableString *muString = [NSMutableString stringWithString:self];
         return [self private_insert:muString withPunctuation:puctutation];
     }else{
         return self;
     }
}
- (NSMutableString *)private_insert:(NSMutableString *)string withPunctuation:(NSString *)punctuation{
    NSUInteger maxLength = string.length;
    if ([string containsString:punctuation]) {
        maxLength = [string rangeOfString:punctuation].location;
    }else if ([string containsString:@"."]){
        maxLength = [string rangeOfString:@"."].location;
    }
    if (maxLength-([string containsString:@"-"]?1:0)>3) {
        [string insertString:punctuation atIndex:(maxLength-3)];
        [self private_insert:string withPunctuation:punctuation];
    }else{
        return string;
    }
    return string;
}
 - (Boolean)private_isNumber{
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"^[-0-9.]*$"];
    if ([predicate evaluateWithObject:self]) {
        return YES;
     }
    return NO;
 }

- (NSString *)subscribeCountUnit {
    NSInteger count = [self integerValue];
    if (count < 10000) {
        return [NSString stringWithFormat:@"%ld",count];
    }else if (count < 100000000 && count >= 10000) {
        NSInteger tenThouand = count/10000;
        NSInteger thousand = count%10000/1000;
//        return [NSString stringWithFormat:@"%ld.%ld万",tenThouand,thousand>=5?thousand+1:thousand];//进位
        return [NSString stringWithFormat:@"%ld.%ld万",tenThouand,thousand];
    } else{
        NSInteger yi = count/100000000;
        NSInteger tenThouand = count%100000000/10000000;
//        return [NSString stringWithFormat:@"%ld.%ld万",tenThouand,thousand>=5?thousand+1:thousand];//进位
        return [NSString stringWithFormat:@"%ld.%ld亿",yi,tenThouand];
    }
    return @"0";
}


相关文章

  • NSString 没3位分割 ,

    方法 eg.数字以逗号隔开 例:123,321.11:

  • 字符串分割

    //字符串分割/前 +(NSString*)string1:(NSString*)str { NSRange ...

  • OC NSstring 使用

    NSString的比较 输出结果: NSString的分割 输出结果: NSString的截取 输出结果: NSS...

  • NSString 的七种使用技巧

    1.分割字符串 NSString *string = @"This is a iOSDevTip"; 分割 com...

  • iOS 字符串的知识点

    1、分割NSString字符串为NSArray数组 2、数组转化为字符串

  • iOS基础小点

    1.Objective-C 使用大小写分割字符串 NSString *string = @"ThisStringI...

  • 多条件字符串分割

    需求:以。或者!或者?分割字符串 思路一: NSString *testStr = @"我的世界观。我的美女?我的...

  • oc 将NSstring分割成数组

    NSString *str =@"Rem【ar【k";NSArray *array = [str componen...

  • iOS 小技巧

    1. 打印View所有子视图 2. NSString过滤特殊字符 3. TransForm属性 4. 去掉分割线多...

  • iOS 搜索高亮匹配

    1. 给NSString分类添加搜索字段范围检索的方法 思路:将一个String通过searchText分割成一个...

网友评论

      本文标题:NSString 没3位分割 ,

      本文链接:https://www.haomeiwen.com/subject/zuorortx.html