`
zjjzmw1
  • 浏览: 1366246 次
  • 性别: Icon_minigender_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;

}

 

 

 

 

 

 

 

转载:http://mobilesolutions.blog.163.com/blog/static/18922417620116133910181/
统计含中英文混编的NSString 字符串长度
将一个NSString类型字符串获取的长度转换成类似ASCII编码的长度,如汉字2个字节,英文以及符号1个字节这个功能。
由于使用[NSString length]方法调用获取的长度是一个中文和一个英文都是一个字节,而使用

[NSString lengthOfBytesUsingEncoding:NSASCIIStringEncoding] 方法无法识别中文编码,真是令人揪心。

于是想获得一个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;

}

分享到:
评论

相关推荐

    Objective-C中NSString的各种用法

    1. 获取字符串的长度:`NSUInteger length = [str length];` 2. 根据索引获得单个字符:`unichar c = [str characterAtIndex:5];` 3. 根据索引获得字符串的一个子串: * 截取字符从某个位置开始到末尾:`NSString *...

    NSString用法.pdf

    3. **长度和比较**: - 使用`length`方法可以获取字符串中的字符数,如`NSLog(@"length:%ld", (long)[str length]);`。 - `isEqualToString:`方法用于比较两个字符串是否相等,而`compare:`方法则提供了更灵活的...

    NSString富文本处理的demo

    本Demo将深入探讨如何使用`NSString`进行富文本处理,特别是字符长度计算的相关知识。 首先,`NSString`的富文本处理主要依赖于`NSAttributedString`类和它的扩展`NSMutableAttributedString`。这两个类允许我们...

    IOS获取设备MAC地址及MD5加密

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它将任意长度的数据转化为固定长度的128位(16字节)摘要。这个摘要具有不可逆性,即无法从摘要还原原始数据,因此常用于数据完整性校验和密码存储。在...

    NSStringDemo

    例如,你可以使用`isEqualToString:`来检查两个字符串是否相等,使用`length`属性获取字符串的长度,使用`substringToIndex:`或`substringFromIndex:`截取子串,以及使用`containsString:`检测字符串中是否包含特定...

    UITextField现在输入字符长度

    newText = (newText as NSString).replacingCharacters(in: selectedRange, with: "") // 再添加新输入的字符 newText += string } else { // 没有选中,则直接在末尾添加新字符 newText += string } ...

    ios NSData NSString AES加密解密算法源码

    密钥长度可以是128、192或256位,但在这个例子中,通常选择128位,因为它是最快且最广泛支持的。初始化向量是用于增加加密过程的随机性的另一个关键数据,通常也是128位。 接下来,你可以使用`CCCrypt`函数进行加密...

    Object-c字符串数组字典

    - 获取字符串长度: ```objective-c -(NSInteger)length; ``` - 获取字符串中特定位置的字符: ```objective-c -(unichar)characterAtIndex:(NSUInteger)index; ``` 除此之外,NSString还提供了一些常用的...

    swift-一行代码搞定NSString和NSData的md5加密

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它将任意长度的数据转化为固定长度的摘要,通常用于数据校验和密码存储。在iOS应用开发中,我们可能需要对NSString(字符串)或NSData(二进制数据)...

    一行代码解决textField输入中文长度限制

    首先,我们需要理解iOS中的NSString对象提供了多种方法来获取字符串的长度。默认的length属性返回的是UTF-16编码下的字符数,这对于英文字符来说,每个字符对应一个UTF-16单元,但对于中文字符,每个汉字通常占用两...

    根据文本内容动态获取文本宽度

    +(CGFloat)getWidthByHeight:(CGFloat)height title:(NSString*)title font:(UIFont*)font { UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, height)]; label.text = title; label.font =...

    iOS开发常用代码

    - `length:`:获取字符串长度。 - `substringToIndex:` 和 `substringFromIndex:`:截取子字符串。 - `rangeOfCharacterFromSet:`:查找特定字符集内的字符。 - `containsString:`:判断字符串是否包含另一字符串。 ...

    动态获取字符串高度

    在iOS开发中,动态获取字符串高度是一项常见的任务,特别是在布局用户界面时,需要精确计算文本元素(如UILabel、UIButton)的高度以适应不同长度的文本。标题"动态获取字符串高度"和描述"根据文本内容,设定字体...

    iOS http 学习

    //设置数据长度 [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Contene-Type"];//设置数据格式 [request setHTTPBody:[strBody dataUsingEncoding:NSUTF8StringEncoding]];//...

    TextField和TextView限制输入字数长度

    在上述代码中,我们首先获取了当前TextField的文本长度,然后根据`range`和`replacementString`计算出如果输入新字符后文本的总长度。如果新的总长度超过16个字符,则返回NO阻止输入;否则允许输入。 ### 2. ...

    Objective-C中字符串NSString的常用操作方法总结

    此外,NSString还有许多其他功能,如获取字符串长度(`length`),分割字符串(`componentsSeparatedByString:`),查找子字符串位置(`rangeOfString:`),替换子字符串(`replaceOccurrencesOfString:withString:...

    ios实现自动获取label高度、宽度及最后一个位置详解

    在iOS中,我们可以利用`NSString`的`sizeWithFont:constrainedToSize:`方法来计算字符串在特定字体和约束尺寸下的大小。例如,如果要获取不折行单行显示时的宽度,可以这样操作: ```swift let font = UIFont....

    ios指定路径文件大小

    在iOS中,我们可以利用`NSFileManager`类来获取文件或文件夹的信息。以下是一个简单的示例,它演示了如何获取指定路径文件的大小: ```objc // 获取Documents目录路径 NSString *path = ...

    iphone生命周期 详解

    1. **获取字符串长度**:使用`-[NSString length]`方法。 ```objective-c NSString *str1 = @"MACOSPro"; NSLog(@"长度是%d", [str1 length]); ``` 2. **字符串连接**: - 使用`-[NSString ...

Global site tag (gtag.js) - Google Analytics