您的位置:首页 > 其它

【OC学习-17】NSNumber和NSString介绍以及一些操作方法

2014-09-05 13:11 316 查看
(1)NSNumber数字对象:虽然有int和float这些基本数字变量,但终究不是对象,所以不能接受消息(就是被调用),所以需要数字对象

#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//格式和NSString创建类似,只是后面的初始化函数要有针对性,这是框架里面内置的
NSNumber *intNumber=[[NSNumber alloc]initWithInt:18]; //这一条和下一条等价<p style="margin-top: 0px; margin-bottom: 0px; font-size: 11px; font-family: Menlo;"><span style="color: #703daa"><span style="white-space:pre">	</span> NSNumber</span> *int111111=[<span style="color: #703daa">NSNumber</span> <span style="color: #3d1d81">numberWithInt</span>:<span style="color: #272ad8">18</span>];</p>        NSNumber *floatNumber=[[NSNumber alloc]initWithFloat:18.22];
NSLog(@"%@",intNumber);
NSLog(@"%@",floatNumber);
//也可以把数字对象转换成基本数值型,intvalue这些也是内置的方法
int int1=[intNumber intValue];
float float1=[floatNumber floatValue];
NSLog(@"%d",int1);
NSLog(@"%.1f",float1);
}
return 0;
}


(2)NSString字符串对象

//创建字符串常量对象
NSString *str1=@"hello";

//创建空字符串对象
NSString *str2=[[NSString alloc]init];
NSString *str3=[NSString string];

//快速创建一个字符串对象
NSString *str4=[[NSString alloc]initWithString:@"andy"];
NSString *str5=[NSString stringWithString:@"tom"];

//创建格式化的字符串对象
NSString *str6=[[NSString alloc]initWithFormat:@"%d",10];
NSString *str7=[NSString stringWithFormat:@".1f",10.8];

//比较两个参数的内容值是否相同
if ([str1 isEqualToString:str2]) ...

//判断两个对象变量是否是同一个,即指向同一个地址
if (str1==str2) ...

//比较大小
if ([str1 caseInsensitiveCompare:str2])

//字符串长度
NSLog(@"%d",[str1 length]);

//字符串大写、小写、首字母大写
NSLog(@"%@",[str1 uppercaseString]);
NSLog(@"%@",[str1 lowercaseString]);
NSLog(@"%@",[str1 capitalizedString]);

//分割成数组,以空格分隔
NSArray *arr=str1 componentsSeparatedByString:@" ";

//剪切字符串,从开始到2(不包含2);从2开始(包含2)到最后
NSString * str8=[str1 substringToIndex:2];
NSString * str9=[str1 substringFromIndex:2];
NSRange range={4,2};//从什么范围开始剪切,和下面是等价的,range是内置的方法
range.location=4;
range.length=2;
NSString *str10=[str1 substringWithRange:range];
</pre><pre name="code" class="objc">//把两个字符连接
NSString *str11=[str1 stringByAppendingString:str2];
NSString *str12=[str1 stringByAppendingFormat:@"",str2];
NSString *str13=[[NSString alloc]initWithFormat:@"%@ and %@",str1,str2];
NSRange range2=[str1 rangeOfString:@"hello"];
//NSMutableString创建的对象是可变变量,可以增减替换操作
NSMutableString *mutstring1=[[NSMutableString alloc]initWithFormat:@"hello"];
[mutstring1 insertString:@"world" atIndex:5];
[mutstring1 replaceCharactersInRange:(0,3) withString:@"eee"];
[mutstring1 deleteCharactersInRange:(0,3)];

还有一些字符串判断,BOOL value1=[str1 hasPrefix:@"www"];判断是否以www开头,值是YES或NO。同理,BOOL value2=[str1 hasSuffix:@".png"];判断以什么结尾。

使用==判断两个字符串是否相等,其实是判断他们的地址是否相同。所以我们一般判断是用isEqualToString这些方法。我们在iOS开发中用if判断两个指针地址是否相同,用得就是==或者!=,而不是isEqualToString。

还有一些比较强悍的方法,利用替换可以实现替换、删除、插入等功能,如方法stringByReplacingOccurrencesOfString。

还有把内容写入到文件的方法wirteToFile。从文件中读取内容的方法stringWithContentOfFile。这2个方法有个&error参数,如果正常,则error==nil,否则会吧错误信息记录到error中。所以我们可以利用error是否等于nil做判断是否读写成功。

总结:其实,我们只需要了解,不需要全部记忆,因为在xcode写函数的时候是有提示的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐