如何获得NSString的“实际长度”

时间:2011-03-24 13:04:06

标签: nsstring

说我有一个字符串:

NSString * str = @“abc一二三”;

包含英文和中文,如果我使用[str length]我得到的 结果6.我想要的结果是1 + 1 + 1 + 2 + 2 + 2 = 9,一个汉字 等于2英文字母。

希望有人可以帮助我,谢谢^ _ ^

2 个答案:

答案 0 :(得分:0)

嗯,这很乏味,但你可以创建自己的String Length方法。一个带有switch语句的方法,它单独检查字符并相应地分配整数值,然后返回总计。例如:

- (NSInteger)specialStringLength:(NSString *)theString {
     int realLength=0;
     for(int x=0;x<[theString length];x++)
     {
          char thisOne = [theString characterAtIndex:x];
          switch(thisOne) {
               case 'a':
                    realLength++;
                    break;
               // and so on...
               case '三':
                    realLength+=2;
                    break;
               // and so on...
          }
     }
     return realLength;
}

答案 1 :(得分:0)

也许你可以将NSString转换为NSData,并使用NSData的长度。