字符串字节长度限制

2020-10-31  本文已影响0人  飛天江郎

记录一下防止日后忘记了

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

/*
这里是直接减掉后续的字符串。
假设一个汉字字符串的长度为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];
}
上一篇下一篇

猜你喜欢

热点阅读