现在的位置: 首页 > 综合 > 正文

iOS中英文混排,获取字符串长度(中文字符数)

2014年09月29日 综合 ⁄ 共 619字 ⁄ 字号 评论关闭

将一个NSString类型字符串获取的长度转换成类似ASCII编码的长度,如汉字2个字节,英文以及符号1个字节这个功能。
用一个char*类型的字符串,然后自己遍历一遍,将它整理为类似ASCII编码的格式,用到 [NSString cStringUsingEncoding:NSUnicodeStringEncoding]函数获得一个const char*指针,然后对这个字符串进行遍历,遇/0就跳过,否则length+1,就可以解决此问题。

 (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 (strength+1)/2;

}

抱歉!评论已关闭.