2017年10月19日
iOS 判断中英文混合输入的字符长度
以下内容来自网上,亲测可用:
方法一:
- (int)convertToInt:(NSString*)strtemp
{
int strlength = 0;
char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return strlength;
}
方法二:
- (NSInteger)getToInt:(NSString*)strtemp
{
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSData* da = [strtemp dataUsingEncoding:enc];
return [da length];
}
方法三:
NSString *text = @"你好Hello World!";
NSInteger length = [text lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
length -= (length - text.length) / 2;
length = (length +1) / 2;
NSLog(@"%ld", (long)length);