iOS判断一个字符是不是中文字符,计算一段字符串的长度。详解手机开发

主要是将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; 
 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5156.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论