NSNumber类和NSString类
Posted ybn-juan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSNumber类和NSString类相关的知识,希望对你有一定的参考价值。
NSNumber
- 声明一个NSNumber对象:
NSNumber *boolNumber = [NSNumber numberWithBool:YES];
NSNumber *charNumber = [NSNumber numberWithChar:'A'];
NSNumber *intNumber = [NSNumber numberWithInt:1];
NSNumber *floatNumber = [NSNumber numberWithFloat:3.14];
NSNumber *doubleNumber = [NSNumber numberWithDouble:3.141];
numberWithBool、numberWithChar这些应该是NSNumber的静态方法,相当于:NSNumber.numberWithBool(YES);
- 获得NSNumber对象的值:
BOOL boolValue = [boolNumber boolValue];
char charValue = [charNumber charValue];
相当于boolNumber.boolValue();
OC中调用对象方法的语法形式为[类/对象名 方法名:参数]
NSString
定义和输出
定义一个NSString对象:
NSString *language = @"OC";
用已有字符串格式化定义新字符串:
NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", lang];
(先调用[NSString alloc]
方法)。使用控制台日志输出一个NSString:
NSLog(@"greeting:%@", greeting);
使用printf输出NSString:
printf("%s",[greeting UTF8String]);
这里调用NSString实例的
UTF8String
方法将对象转换成C风格字符串,相当于C++的expStr.c_str()
。
对象实例方法
lowercaseString
&capitalizedString
:转换为小写/大写hasPrefix:expStr
&hasSuffix:expStr
:是否以expStr为前缀/后缀containsString:expStr
:是否含有expStr子串length
:长度isEqualToString:expStr
:两字符串是否相等intValue
:转换为整型(相当于atoi),其他类型同理rangeOfString:expStr
:返回一个NSRange
对象,该对象有两个属性location
和length
(unsigned long类型),分别表示子串expStr在原字符串中的位置和长度characterAtIndex:i
:相当于str[i]
或C++的str.at(i)
substringFromIndex:i
:从下标i开始向后截取字符串substringToIndex:i
:从头到下标i截取字符串stringByReplacingCharactersInRange:expRange withString:expStr
:用expStr
替换expRange
范围内的所有字符stringByAppendingString:expStr
: 在末尾添加字符串expStr
stringByTrimmingCharacterInSet:expCharSet
:使用一个NSCharacterSet
对象expCharSet
,从原字符串中过滤掉目标字符集中含有的字符
总结:
NSString类还有很多实用的普通/静态方法,留到后续的学习和实践中边学边用。此外可以发现OC中对象方法的方法名都非常的长,但相较于同样有此问题的Java,OC中填写参数的语法更符合自然书写习惯一些。
以上是关于NSNumber类和NSString类的主要内容,如果未能解决你的问题,请参考以下文章