objective-c中字符串长度计算

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

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

比如:NSString * str [email protected]”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;

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

时间: 2024-08-02 07:34:25

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

php中的中文字符串长度计算以及截取

一.中文字符串截取:mb_substr() mb_substr($str, $start, $length, $encoding); $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字数 $encoding,网页编码,如utf-8,GB2312,GBK 例: $str = "这个字符串是我想要截取的"; 截取"这个字"; echo mb_substr($str,0,3,"utf-8"); 二.中文字符串长

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

js字符串长度计算(一个汉字==两个字符)和字符串截取 String.prototype.realLength = function() { return this.replace(/[^\x00-\xff]/g, "**").length; // [^\x00-\xff] - 匹配非双字节的字符 }; String.prototype.realSubstring = function(n){ var str = this||''; if(this.realLength()<=n

iOS 根据字符串样式、字符串长度计算字符串所占大小

通过Category为NSString添加方法: 1. 根据字符串样式.字符串长度计算字符串所占大小 /** *  @param font     字符串样式 *  @param maxWidth 指定字符串长度 */- (CGSize)sizeWithFont:(UIFont *)font maxWidth:(CGFloat)maxWidth { // 获取文字样式 NSMutableDictionary *attrs = [NSMutableDictionary dictionary]; a

字符串长度计算、截取、url参数获取

1.中英混合文字字符截取 //中文长度截取计算,可取中英混合,个数向上取整,精确度1个英文字符误差,一个英文算一个字符,一个汉字算一个字符. //sub("中文zlsd",1) -> "中" //sub("中文zlsd",3) -> "中文" function subCh (str,n){ var r=/[^\x00-\xff]/g; if(str.replace(r,"mm").length&

字符串长度计算

字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是字符串所占字节的数目.常见的获取字符串长度的方法包括如下几种. 1.使用sizeof获取字符串长度 sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0).对于ANSI字符串和UNICODE字符串,形式如下: sizeof(cs)/sizeof(char) sizeof(ws)/sizeof(wchar_t) 可以采用类似的方式,获取到其字符的数目.如果遇到MBCS,如"中文ABC",很显然,这种办法

判断输入中字符串长度的代码

//判断输入文本中字符串的长度 if ([self convertToInt:chooseRollTextField.text] > 20) { [self showToast:@"输入的角色名不能超过20个汉字或40个字符哦!"]; return; } - (int)convertToInt:(NSString*)strtemp { int strlength = 0; char* p = (char*)[strtemp cStringUsingEncoding:NSUnico

iOS 根据字符串长度计算label的尺寸

//计算字符串高度- (CGSize)labelAutoCalculateRectWith:(NSString*)text FontSize:(CGFloat)fontSize MaxSize:(CGSize)maxSize {        NSMutableParagraphStyle* paragraphStyle = [[NSMutableParagraphStyle alloc]init];        paragraphStyle.lineBreakMode=NSLineBreak

输出字符串即长度计算

方法一:单引号 'http' 方法二:双引号 "http" 方法三:三引号 """http""" 输出单引号:"let's go" 输出双引号:'she say "yes使用转移符"\" >>>print('she said "yes! let\'s go"') >>>print("she said \"

【转】Delphi中字符串的处理

原文来自: [100脚本网 http://www.pc100.net/ ] 一.几个字符串处理的基本函数   a)子串定位——获取子串在原字串中的位置(不是数组下标,而是第几个) 1 function pos('子串','原字符串'):integer 说明:当有中文时,最好这样用:pos('子串',wideString('原字符串')),这样可以避免前一个汉字的后半部分和后一个汉字的前半部分 也恰好能构成一个汉字时出现问题.   b)子串截取——拷贝出原字符串中的部分子串(Index不是数组下标