主要是将oc字符串转成c的字符串(char*),然后判断c的字符串的长度,因为中文字符占得长度是英文字符的两倍。 
 
//判断一个字符书不是中文。 
 
-(BOOL)isChinese:(NSString*)c{ 
 
    int strlength = 0; 
 
    char* p = (char*)[ccStringUsingEncoding: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",[selfisChinese:str]); 
 
    NSString* str2 = @"w"; 
 
    NSLog(@"%d",[selfisChinese:str2]); 
 
 
 
 
//计算一段字符串的长度,两个英文字符占一个长度。 
 
 
- (int)countTheStrLength:(NSString*)strtemp { 
 
    int strlength = 0; 
 
    char* p = (char*)[strtempcStringUsingEncoding:NSUnicodeStringEncoding]; 
 
    for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { 
 
        if (*p) { 
 
            p++; 
 
            strlength++; 
 
        } 
 
        else { 
 
            p++; 
 
        } 
 
    } 
 
    return (strlength+1)/2; 
 
}

评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!