记录一下防止日后忘记了
这是一个简单的识别字符串字节长度方式,如果有其他的欢迎留言交流:
/*
这里是直接减掉后续的字符串。
假设一个汉字字符串的长度为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];
}
网友评论