字符串字节长度限制

记录一下防止日后忘记了

这是一个简单的识别字符串字节长度方式,如果有其他的欢迎留言交流:

/*
这里是直接减掉后续的字符串。
假设一个汉字字符串的长度为72,那么我这里限制了的话,
就会剩下少于或等于限制的那个字符串内容,
因为如果直接限制,有可能显示上会是中文乱码。
*/
-(NSString *)sortByName:(NSString *)baseStr withLength:(int)maxLen{
    NSArray *a1 = [baseStr componentsSeparatedByString:@"."];
    NSString *base1 = a1[0];
    NSMutableString *targetStr = [NSMutableString new];
    int index = 0;
    for (int i = 0; i<base1.length; i++) {
        NSString *t0 = [base1 substringWithRange:NSMakeRange(i, 1)];
        if ([self isZh_CN:t0]) {
            index+=3;
        }else{
            index+=1;
        }
        if (index< maxLen) {
            [targetStr appendString:t0];
        }else{
            break;
        }
    }
    return targetStr;
}
-(BOOL)isZh_CN:(NSString *)str{
    NSString *match = @"(^[\u4e00-\u9fa5]+$)";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF matches %@", match];
    return [predicate evaluateWithObject:str];
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。