我们知道,在c语言中,使用sizeof ()计算在内存中占用的字节数, 引用string.h后,使用strlen()计算字符串的长度(不包含\0)。

而在object-c中, “length”这个方法,可以返回字符串的长度。

比如:NSString * str =@”12345”;int a = 0; a = [str  lenght];此时a的值就是字符串str的长度,也就是5.

值得一提的是oc 中length方法在计算字符串长度时和c有几点不同,在c中,如果字符串中有汉字的话是按三个字节的长度来算的,比如 char * str =”哈哈”;这个字符串的长度就是6,但是在oc中,不管字符串中是中文还是其他字符,每个符号长度都是1;比如:NSstring
* str = @”哈哈”;那么str的长度就是2。

让我们通过几个例子来更好了解:

//1) 纯英文的字符串长度计算:

NSString *str = @"wanghy";

NSUInteger len = [str length];

//此时 len 的值就是6.

NSLog(@"len = %ld",len);

// 2) 纯中文的字符串的长度计算

// 中文的每个汉字都当做一个字符

NSString *str2 = @"世界那么大,我想去看看";

len = [str2 length];

//len的值应该是11.

NSLog(@"len = %ld",len);

// 3) 中英文混合

// 总结: 不管中文还是英文,在OC中认为就是一个字符

NSString *str3 = @"哈哈哈哈itcast";

len = [str3 length];

NSLog(@"len = %ld",len); // len = 10;

版权声明:本文为博主原创文章,未经博主允许不得转载。

objective-c中字符串长度计算的更多相关文章

  1. js字符串长度计算(一个汉字==两个字符)和字符串截取

    js字符串长度计算(一个汉字==两个字符)和字符串截取 String.prototype.realLength = function() { return this.replace(/[^\x00-\ ...

  2. 字符串长度计算、截取、url参数获取、计算百分比、时间戳格式化

    1.中英混合文字字符截取 //中文长度截取计算,可取中英混合,个数向上取整,精确度1个英文字符误差,一个英文算一个字符,一个汉字算一个字符. //sub("中文zlsd",1) - ...

  3. php中字符串长度和截取的函数

    在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理. 在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函 ...

  4. 记一次js中和php中的字符串长度计算截取的终极问题和完美解决方案

    1.js是用unicode算长度的,比如单字节的算1,中文也算1,但是正常我们想让两个单字节算1,如何计算这个长度 第一种解决方案,用正则,如下 /[\u0x00-\u0xff]/,天真的想着,这样就 ...

  5. php 中英文混合字符串长度计算

    (strlen($string) + mb_strlen($string,'UTF8')) / 2;tw 这样计算的

  6. NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计算字符串长度,汉字算两个字符 2019周笔记(2.18-2.23) Mysql语句中当前时间不能直接使用C#中的Date.Now传输 Mysql中Count函数的正确使用

    NET MVC全局异常处理(一)   目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关 ...

  7. Shell脚本中计算字符串长度的5种方法

    有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前Shell中获取字符串的长度的多种方法,在这里分享给大家,方法如下: 方法1: 使用wc -L命令wc -L可以获取到当前行 ...

  8. (实用篇)php中计算中文字符串长度、截取中文字符串的函数代码

    在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务 ...

  9. php中计算中文字符串长度、截取中文字符串

    在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数 ...

随机推荐

  1. Oracle和MSSQL查询有多少张表

    Oracle: SELECT count(*) FROM user_tables MSSQL: ) FROM sysobjects WHERE xtype='U' 这种方法可能会把dbo.dtprop ...

  2. Android线程计时器实现

    cocos2dx的计时器很好用,但当app进入后台,其计时器会pause掉,如果想要一个稳恒计时器就得自己去实现完成了,在Cocos2d-x for ios中我们可以利用NSTimer类并结合objc ...

  3. 在Raspberry配置优化安装LNMP环境总结

    在Raspberry配置优化安装LNMP环境总结 apt-get update apt-get install nginx apt-get install php5-fpm php5-cli php5 ...

  4. Poj 1151-Atlantis 矩形切割

    题目:http://poj.org/problem?id=1151 Atlantis Time Limit: 1000MS   Memory Limit: 10000K Total Submissio ...

  5. sql日志框架log4jdbc的AOP式使用

    log4jdbc.log4j2 参考:1.  http://badqiu.iteye.com/blog/743100 2.  https://code.google.com/p/log4jdbc/ 3 ...

  6. 使用DNSAgent拦截特定域名

    开发程序时,为方便测试,需要把本来发往abc.com的数据发到本地. 最简单的方法是直接在程序中修改,把abc.com修改为需要的地址. 但这样提交代码时,容易把调试地址给提交到服务器. 或是嵌入式设 ...

  7. rtsp的东西

    http://ubuntuforums.org/showthread.php?t=1544946 http://www.live555.com/liveCaster/liveInput.html ht ...

  8. 3 视频里weekend05、06、07的可靠性 + HA原理、分析、机制 + weekend01、02、03、04、05、06、07的分布式集群搭建

    现在,我们来验证分析下,zookeeper集群的可靠性 现在有weekend05.06.07 将其一个关掉, 分析,这3个zookeeper集群里,杀死了weekend06,还存活weekend05. ...

  9. 软件授权协议有什么作用,例如GPL、Apache License、CDDL、EPL这些协议有什么区别?

    1.授权协议有什么作用:授权协议就是授予你使用或修改软件等权利,由于软件受到著作权保护,未经授权使用即是侵犯著作权,属于违法行为,所以同意或签署软件授权协议是你使用或修改软件的前提条件.既然是授权协议 ...

  10. EasyUI-页面布局

    通过使用 jQuery EasyUI 可以很容易地添加 Tabs.您只需要调用 'add' 方法即可. 在本教程中,我们将使用 iframe 动态地添加显示在一个页面上的 Tabs. 当点击添加按钮, ...