您的位置:首页 > 移动开发 > Objective-C

Objective-C ,ios,iphone开发基础:如何判断一个字符是不是中文字符。计算一段字符串的长度。

2014-04-15 12:45 1366 查看
主要是将oc字符串转成c的字符串(char*),然后判断c的字符串的长度,因为中文字符占得长度是英文字符的两倍。

//判断一个字符书不是中文。

-(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;

}
http://blog.csdn.net/shouqiangwei
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: