iOS判断一个字符是不是中文字符,计算一段字符串的长度

2025-04-07 02:56:50
推荐回答(1个)
回答1:

//判断一个字符书不是中文。
-(BOOL)isChinese:(NSString*)c{
int strlength = 0;
char* p = (char*)[c cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[c lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return ((strlength/2)==1)?YES:NO;
}

检验:

NSString* str = @"人";
NSLog(@"%d",[self isChinese:str]);
NSString* str2 = @"w";
NSLog(@"%d",[self isChinese:str2]);

//计算一段字符串的长度,两个英文字符占一个长度。

- (int)countTheStrLength:(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+1)/2;
}