Snail—OC学习之字符串NSString
2015-07-20 17:51
363 查看
首先,看一下不可变字符串NSString的方法
<span style="white-space:pre"> </span>//最直接的定义一个字符串 NSString * str1 = @"我是Snail"; //通过一个字符串来创建另一个字符串 NSString * str2 = [[NSString alloc] initWithString:str1]; //下面这个方法跟上面这个是一个意思 NSString * str3 = [[NSString alloc] initWithString:@"我是Snail"]; //C语言的字符串转换成OC字符串对象 NSString * str4 = [[NSString alloc] initWithUTF8String:"我是C语言字符串"]; //OC字符串转换成C语言的字符串 char * p = [str1 UTF8String]; //格式化的形式进行创建字符串(对不同类型数据进行拼接) int a = 5; float b = 2.5; NSString * temp = @"我为梦想而生"; NSString * str5 = [NSString alloc] initWithFormat:@"%d,%.1f,%@",a,b,temp ]; //下面这些方法都是NSString的类方法 也有一些方法来创建字符串 //格式化的形式创建字符串 NSString * str6 = [NSString stringWithFormat:@"%d,%.1f,%@",a,b,temp]; //把C语言字符串转换成OC字符串 NSString * str7 = [NSString stringWithUTF8String:"我是Snail"]; //根据存在的字符串创建一个新的字符串 NSString * str8 = [NSString stringWithString:str1]; //%@格式符可以输出对象的值 NSLog(@"%@",str2);
NSString的一些相关方法
NSString * str = @"My name is Snail."; //NSInteger 有符号整型 跟C的int差不多 //字符串的长度 NSInteger length = [str length]; //unichar 类似于C语言的char ,都表示字符 unichar a = [str characterAtIndex:1]; //将str全部转换为大写 NSString * str2 = [str uppercaseString]; //将str全部转换成小写 NSString * str3 = [str lowercaseString]; //首字母大写 NSString * str4 = [str capitalizedString]; //判断字符串的前缀 NSString * url = @"www.baidu.com"; BOOL ret1 = [url hasPrefix:@"www"]; BOOL ret2 = [url hasSuffix:@"com"];
字符串的比较各种方法
//判断两个字符串是否相等 NSString * str1 = @"My name is Snail."; NSString * str2 = @"My name is Snail."; BOOL ret1 = [str1 isEqualToString:str2]; if (ret1) { NSLog(@"str1 与 str2 的值相等"); } //比较两个字符串的大小,即就是比较两个字符串相应位置字符的ASCII码的大小 NSString * str3 = @"asdsfgffg"; NSString * str4 = @"asdsfgffg"; NSString * str5 = @"asdsfgffgaad"; //比较的返回值是NSComparisonResult /* NSOrderedAscending 升序 后者大 -1 NSOrderedSame, 相等 0 NSOrderedDescending 降序 前者大 1 */ NSComparisonResult ret2 = [str3 compare:str4]; if (ret2 == 0) { NSLog(@"str3跟str4的值相等 ret2=0"); } NSComparisonResult ret3 = [str3 compare:str5]; if (ret3 == -1) { NSLog(@"str3小于str5 ret3=-1"); } NSComparisonResult ret4 = [str5 compare:str3]; if (ret4 == 1) { NSLog(@"str5 大于 str3 ret4==1"); } //不区分大小写比较 NSString * str6 = @"AshsadaS"; NSString * str7 = @"sadsadwS"; BOOL ret5 = [str6 caseInsensitiveCompare:str7];
子串的查找方法
NSString * str = @"我是卖报的小画家"; NSString * findStr = @"的小"; //判断findStr是否在str中存在 //返回值是NSRange 是一个结构体 有一个location(表示下标) length(表示长度) NSRange range = [str rangeOfString:findStr]; if (range.location == NSNotFound) { NSLog(@"不存在"); }else{ NSLog(@"findStr在str的下标是:%lu,长度是%lu",range.location,range.length); }
子串的提取
NSString * str = @"My name is Snail"; //提取到相应下标的之前的字符串 不包括指定位置的字符 NSString * str1 = [str substringToIndex:5]; //str1:My na //提取到字符串尾部 包括指定位置的字符 NSString * str2 = [str substringFromIndex:5]; //str2 :me is Snail //提取一个范围的字符串 NSRange range = NSMakeRange(4, 5); NSString * str3 = [str substringWithRange:range]; //str3:ame i NSLog(@"%@",str3);
字符串转换成基本类型
//字符串的编外方法 NSString * str = @"1234.245"; int a = [str intValue]; NSLog(@"%d",a); // a=1234; float b = [str floatValue]; NSLog(@"%.2f",b);// b = 1234.24 NSInteger c = [str integerValue]; NSLog(@"%ld",c);//c = 1234;
下一篇讲可变的字符串
相关文章推荐
- @property (nonatomic,retain)中的nonatom和retain的意思
- Snail—OC学习之Hello,World!
- Failed to fetch URL https://dl-ssl.google.com CPU acceleration status: HAX kernel module is not installed!
- junit.framework.AssertionFailedError: No...
- 使用Email的身份验证(OpenID)、电子支付,及Email的链接处理
- HDOJ 1022 Train Problem I(简单栈)
- LeetCode11:Container With Most Water
- Genymotion出现Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE错误解决方法
- Hadoop jps出现process information unavailable提示解决办法
- 编译出现error LNK2019: 无法解析的外部符号 _main
- poj1691--Painting A Board(拓扑+dfs)
- devenv.exe - assert failure
- Sails 关闭自动路由 Automatic Routes 功能。
- xcode 的 Auto Layout
- LeetCode Contains Duplicate II
- LeetCode Contains Duplicate II
- HDU3420 Bus Fair
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- 12 Using_explain_plan
- LeeCode-Contains Duplicate