//
// main.m
// NSString
/**
NSString
1.NSString 是一个不可以变的字符串对象
2.NSMutableString是一个可变字符串。
  下面代码为字符串的:增、删、替换、查方法得演示。 */
#import <Foundation/Foundation.h>
void MutableNSString(){
NSMutableString *mutableString =[NSMutableString stringWithFormat:@"我是可变字符串"];
//指定位置增加字符串
[mutableString insertString:@"增加" atIndex:([mutableString length])];
NSLog(@"%@",mutableString); //指定范围替换全部字符串
[mutableString replaceCharactersInRange:NSMakeRange(, [mutableString length]) withString:@"替换后得字符串"];
NSLog(@"%@",mutableString);
NSRange rang = [mutableString rangeOfString:@"字符串"];
[mutableString replaceCharactersInRange:rang withString:@"string"];
NSLog(@"%@",mutableString);
//重新设置可变字符串内容
[mutableString setString:@"ABCDAa"];
//将A替换成E,方式为区分大小
[mutableString replaceOccurrencesOfString:@"A" withString:@"E" options:NSLiteralSearch range:NSMakeRange(, [mutableString length])];
NSLog(@"%@",mutableString);
//删除指定范围得字符串
NSRange deleteRang = [mutableString rangeOfString:@"a"];
//删除前最好判断是否存在,或者使用@try捕捉异常
[mutableString deleteCharactersInRange:deleteRang]; NSLog(@"%@",mutableString);
}
void BaseStringMeth(){
//字符串的基本方法
NSString *str1 = @"hello NSString ";
//查询字符串得长度
NSUInteger length= [str1 length];
NSLog(@"length = %lu",length);
// 转换大写
NSString *upperNSString = [str1 uppercaseString];
NSLog(@"%@",upperNSString);
//转换小写
NSString *lowerNSString = [str1 lowercaseString];
NSLog(@"%@",lowerNSString);
//字符换链接
NSString *appendString = @"study ";
NSString *afterAppendString = [appendString stringByAppendingString:str1];
NSLog(@"%@",afterAppendString);
//判断字符串是否相等
NSString *a = @"string a";
NSString *b = @"string b";
NSString *c = @"string a";
NSString *d = @"String a";
NSString *e = @"Strina a";
if([a isEqualToString:b] != YES){
NSLog(@"不相等");
}
if([a isEqualToString:c]){
NSLog(@"相等");
}
// 这个判断是严格区分大小写
if([a isEqualToString:d]){
NSLog(@"相等");
}
//字符串比较大小,字符串得比较其实就是比较
NSString *compare1= @"";
NSString *compare2 = @"";
//- (NSComparisonResult)compare:(NSString *)string; 比较方法返回值是NSComparisonResult,他是一个枚举类型
//typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};
if([compare1 compare:compare2] == NSOrderedAscending ){
NSLog(@"compare1 <compare2");
}else if ([compare1 compare:compare2] == NSOrderedSame ){
NSLog(@"compare1 ==compare2");
}else if ([compare1 compare:compare2] == NSOrderedDescending){
NSLog(@"compare1 >compare2");
} NSString *compare3= @"res1";
NSString *compare4 = @"RES1";
if([compare3 compare:compare4] == NSOrderedAscending ){
NSLog(@"compare3 <compare4");
}else if ([compare3 compare:compare4] == NSOrderedSame ){
NSLog(@"compare3 ==compare4");
}else if ([compare3 compare:compare4] == NSOrderedDescending){
NSLog(@"compare3 >compare4");
}
//忽略大小写的比较
if([compare3 caseInsensitiveCompare:compare4] == NSOrderedAscending ){
NSLog(@"compare3 <compare4");
}else if ([compare3 caseInsensitiveCompare:compare4] == NSOrderedSame ){
NSLog(@"compare3 ==compare4");
}else if ([compare3 caseInsensitiveCompare:compare4] == NSOrderedDescending){
NSLog(@"compare3 >compare4");
} }
void NSStringSearch(){
//字符串的查找
NSString *str1 = @"hello NSString ";
NSString *hello = @"hello";
//查找hello字符串的位置
NSRange helloRang = [str1 rangeOfString:hello];
NSLog(@"hello location=%lu and length=%lu",helloRang.location,helloRang.length); NSString *hello2 = @"hello2";
NSRange helloRang2 = [str1 rangeOfString:hello2];
//找不到对应的字符串的时候系统会返回一个NSNotFound
if(helloRang2.location == NSNotFound){
NSLog(@"在%@,中没有找到对应的字符串%@",str1,hello2);
}
/**
传入 NSStringCompareOptions 枚举的值
enum{
NSCaseInsensitiveSearch = 1,//不区分大小写比较
NSLiteralSearch = 2,//区分大小写比较
NSBackwardsSearch = 4,//从字符串末尾开始搜索
NSAnchoredSearch = 8,//搜索限制范围的字符串
NSNumbericSearch = 64//按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt
//以下定义高于 mac os 10.5 或者高于 iphone 2.0 可用
NSDiacriticInsensitiveSearch = 128,//忽略 "-" 符号的比较
NSWidthInsensitiveSearch = 256,//忽略字符串的长度,比较出结果
NSForcedOrderingSearch = 512//忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending
//以下定义高于 iphone 3.2 可用
NSRegularExpressionSearch = 1024//只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch
} */
//指定范围进行查找。我们可以通过options来确定查询得方式。从头开始还是从尾开始
NSRange nsstringRang= [str1 rangeOfString:@"NSString" options:NSCaseInsensitiveSearch range:NSMakeRange(, [str1 length])];
NSLog(@"location=%lu,length=%lu",nsstringRang.location,nsstringRang.length); } //字符串的截取
void SubString(){
//字符串截取
NSString *str1 = @"hello NSString "; //从第5个字符开始截取到最后
NSString *subString = [str1 substringFromIndex:];
NSLog(@"%@",subString);//输出NSString
NSRange rang = {,};
//指定范围得截取
NSString *subByRang = [str1 substringWithRange:rang];
NSLog(@"%@",subByRang);//输出hello
//从0开始截取到指定的位置
NSString *subToPosition= [str1 substringToIndex:];
NSLog(@"%@",subToPosition);//输出hello
}
//字符串的创建
void CreateNSString(){
//字符串的创建
NSString *str1 = @"hello NSString ";
//静态方法创建字符串,
NSString *str2 = [NSString stringWithFormat:@"NSString%i",];
//动态创建字符串,由于动态创建计数器会+1因此我们需要自己释放,str3初始化时没有相应的值
NSString *str3 = [[NSString alloc]init]; NSLog(@"%@",str3);
[str3 release]; } int main(int argc, const char * argv[]) {
@autoreleasepool {
CreateNSString();
BaseStringMeth();
SubString();
NSStringSearch;
MutableNSString(); }
return ;
}

最新文章

  1. [mark] Linux下如何批量删除空文件
  2. IIS网站或系统验证码不显示问题——&quot;使用了托管的处理程序,但是未安装或未完整安装 ASP.NET&quot;
  3. 用VBS将PPT转为图片
  4. JQuery实现点击div以外的位置隐藏该div窗口
  5. C++ Primer 学习笔记_76_模板和泛型编程 --模板定义[继续]
  6. (jquery+ajax)省市区三级联动(封装和不封装两种方式)-----2017-05-14
  7. 基础教程:视图中的ASP.NET Core 2.0 MVC依赖注入
  8. 【编程练习】最近准备开始找工作,这篇文章作为一个code练手题目的总结吧
  9. 判断语句之if..else if...else
  10. cuda by example【读书笔记2】
  11. html跳页面传值
  12. Flutter踩坑日记:Tab导航栏保持子页面状态
  13. 「LOJ 556 Antileaf&#39;s Round」咱们去烧菜吧
  14. 对一个前端使用AngularJS后端使用ASP.NET Web API项目的理解(4)
  15. 链表的基础题目学习(EPI)
  16. noi2017 day1 题解
  17. 从原型模式(Prototype Pattern)到 Clone
  18. Android几种Service常驻内存的小思路
  19. 使用AngularJS实现的前后端分离的数据交互过程
  20. Windows最强ssh客户端推荐 —— Bitvise SSH Client

热门文章

  1. iOS应用内跳转百度高德苹果地图
  2. 2017 ACM-ICPC 北京区域赛记录
  3. tomcat7.0.55配置单向和双向HTTPS连接
  4. 深入理解Atomic原子类
  5. RabbitMQ 核心概念
  6. iOS -- SpriteKit框架之SKPhysicsBody的移动和连接
  7. iOS -- YYText富文本
  8. 【转载】Spark学习——入门
  9. Hazelcast与MongoDB集成
  10. GIS+=地理信息+行业+大数据——纽约公开11亿条出租车和Uber原始数据下载及分析