内容简介:在日常的开发中,我们在的Foundationl框架中用到的最多的就是NSString了,不管是界面搭建,还是网络上的数据传递。NSString都是充当着绝对的主角和基石。所以对NSString的熟练程度自然是不言而喻了。所以对于刚刚步入ios开发的我来说总结一篇关于NSString的文章自然就显得很重要。1.字符串最常见的创建方式
引言:
在日常的开发中,我们在的Foundationl框架中用到的最多的就是NSString了,不管是界面搭建,还是网络上的数据传递。NSString都是充当着绝对的主角和基石。所以对NSString的熟练程度自然是不言而喻了。
所以对于刚刚步入ios开发的我来说总结一篇关于NSString的文章自然就显得很重要。
(一)NSString的一些用法介绍
一、最常用一些方式
1.字符串最常见的创建方式
//NSString的使用 char *s = "hello Objective-C" ; NSString * str = @"hello " ;
2.字符其他的串的创建方式
//方式一:系统会自动对象并且会自动释放内存 NSString * str2 = @"hello" ; //方式二:手动创建,手动释放内存 NSString * str3 = [[NSString alloc]init] ; str3 = @"yayuanzi" ;
3.格式化字符串
//格式化字符串 int a = 5 ; int b = 6 ; NSString *number = [NSString stringWithFormat:@"a= %d , b = %d",a,b] ;
二、较为常用的方式
1.拼接字符串
//将str3拼接到str2上 NSString *str4 = [str2 stringByAppendingString:str3] ; NSLog(@"str4 = %@",str4) ;
2.大小写的转换
NSString * str5 = @"yaYUANzi"; //转换小写 lowercaseString NSString *str6 = [str5 lowercaseString]; //转换大写 uppercaseString NSString *str7 = [str5 uppercaseString] ; NSLog(@"str6 = %@ , str7 = %@ ",str6,str7) ;
3.前缀和后缀的判断
NSString *str8 = @"www.yayuanzi.com" ; //判断前缀 hasPrefix BOOL hasPreFix = [str8 hasPrefix:@"www."] ; if (hasPreFix) { NSLog(@"有对应的www前缀") ; }else{ NSLog(@"没有对应的www前缀") ; } //判断后缀 hasSuffix BOOL hasSuffix = [str8 hasSuffix:@".com"] ; if (hasSuffix) { NSLog(@"有对应的com前缀") ; }else{ NSLog(@"没有对应的com前缀") ; }
4.判断两个字符串是否相同
NSString *str9 = @"www.yayuanzi.com" ; NSString *str10 = @"www.yayuanzi.com" ; if ([str9 isEqualToString: str10]) { NSLog(@"两个字符串相同") ; }else{ NSLog(@"两个字符串不相同") ; } //比较字符串 NSComparisonResult方法:这个方法比较特殊,后面单独的回去说.
5.字符串的分割
NSRange的定义可以理解为从location开始的length个元素
typedef struct _NSRange {
NSUInteger location; //表示对象开始的下标
NSUInteger length; //表示对象长度
} NSRange;
//按照指定的字符分割字符串 NSString *str11 = @"welcome,to,ya,yuan,zi" ; NSArray * strArray = [str11 componentsSeparatedByString:@","] ; for (NSString *str in strArray) { NSLog(@"%@",str) ; } NSLog(@"----------按照范围截取字符串") ; //按照范围截取字符串 //1.按照指定范围 NSRange range = NSMakeRange(1, 10) ; NSString *str12 = [str11 substringWithRange:range] ; NSLog(@"str12 = %@",str12) ; //2.从某一位开始截取到最后一位 NSString *str13 = [str11 substringFromIndex:3] ; NSLog(@"str13 = %@",str13) ; //3.从开头开始截取到某一位 NSString *str14 = [str11 substringToIndex:4] ; NSLog(@"str14 = %@",str14) ; //4.将字符串拆分成每一个字符 for (int i = 0; i < [str11 length]; i++) { NSLog(@"%c",[str11 characterAtIndex:i]) ; }
6.字符串的查找
NSString *str15 = @"yayuanziya" ; //查找指定字符串的位置 NSRange range1 = [str15 rangeOfString:@"ya"] ; NSLog(@"range1.location:%ld range1.length:%ld",range1.location,range1.length) ;
7.字符串的替换
//替换 NSString *str16 = @"hello yayuanzi" ; //替换某一个范围的内容 NSString *str17 = [str16 stringByReplacingCharactersInRange:NSMakeRange(0, 5) withString:@"你好"] ; NSLog(@"str17 = %@",str17) ; //用指定的字符串替换原有字符串的子串 NSString *str18 = [str16 stringByReplacingOccurrencesOfString:@"hello" withString:@"你好"] ; NSLog(@"str18=%@",str18) ;
8.通过字符串读取文件
文件的来源:1.本地文件 2.网络文件
NSString *str19 = @"http://www.yayuanzi.com" ; //路径类 NSURL //网络路径 NSURL * httpURL = [NSURL URLWithString:str19] ; //本地路径 NSURL *fileURl = [NSURL fileURLWithPath:str19] ; //读取网络文件 NSString *httpStr = [NSString stringWithContentsOfURL:httpURL encoding:NSUTF8StringEncoding error:nil] ; NSLog(@"httpStr = %@ ",httpStr) ; //读取本地的文件 NSString *fileStr = [NSString stringWithContentsOfFile:@"/Users/123/Desktop/test.txt" encoding:NSUTF8StringEncoding error:nil] ; NSLog(@"fileStr = %@",fileStr) ; //写入本地文件 NSString *str20 = @"hello yayuanzi" ; BOOL isOK = [str20 writeToFile:@"/Users/123/Desktop/test.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil] ; if (isOK) { NSLog(@"文件写入成功") ; }else{ NSLog(@"文件写入失败") ; }
9.C和OC之间的转换
//将c转化为oc NSString *str1 = [NSString stringWithUTF8String:s] ; NSLog(@"str1 = %@",str1) ; //将oc转化为c NSLog(@"c = %s",[str UTF8String]) ;
10.把字符串转换为二进制数据
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding] ;
11.将二进制数据转换为字符串
NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding] ;
转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/25075.html
微信打赏
支付宝打赏
感谢您对作者Annwn的打赏,我们会更加努力! 如果您想成为作者,请点我
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 查找一个字符串中最长不含重复字符的子字符串,计算该最长子字符串的长度
- 字符串、字符处理总结
- 高频算法面试题(字符串)leetcode 387. 字符串中的第一个唯一字符
- php删除字符串最后一个字符
- (三)C语言之字符串与字符串函数
- 算法笔记字符串处理问题H:编排字符串(2064)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。