iOS根据字节数截取字符串

    xiaoxiao2021-03-25  27

        最近项目有个需求,文章的作者最多显示7个中文字,英文字符算半个中文字,超过7个中文字,则显示:前7个中文字+...,使用NSString的length方法,不管是一个中文还是英文字符,都是返回1。因此写了下面的方法,传入需要截取的原字符串和最多显示的字数(两个英文字符算一个中文字符):

    -(NSString*)subTextString:(NSString*)str len:(NSInteger)len{     if(str.length<=len)return str;     int count=0;     NSMutableString *sb = [NSMutableString string];          for (int i=0; i<str.length; i++) {         NSRange range = NSMakeRange(i, 1) ;         NSString *aStr = [str substringWithRange:range];         count += [aStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding]>1?2:1;         [sb appendString:aStr];         if(count >= len*2) {             return (i==str.length-1)?[sb copy]:[NSString stringWithFormat:@"%@...",[sb copy]];         }     }     return str; }

    转载请注明原文地址: https://ju.6miu.com/read-50424.html

    最新回复(0)