ObjectC快速入门教程(2)---字符串
来源:互联网 发布:网络机顶盒性价比 编辑:程序博客网 时间:2024/05/08 14:10
背景
本文主要介绍Object C里使用频率比较高的NSString及NSMutableString两个类的使用(前者为不可变字符串类,后者为可变字符串类)及两者的常用方法.
一,NSString的使用
1.字符串比较
可以直接使用compare
函数得到NSComparisonResult
结果:
//NSOrderedAscending 递增, NSOrderedSame 相等, NSOrderedDescending 递减 NSString *str1 = [NSString stringWithFormat:@"%@", @"hello world"]; NSString *str2 = [NSString stringWithUTF8String:"hello world"]; NSComparisonResult result = [str1 compare:str2]; if(result == NSOrderedAscending){ NSLog(@"str1 小于 str2"); }else if(result == NSOrderedSame){ NSLog(@"str1 等于 str2"); }else if(result == NSOrderedDescending){ NSLog(@"str1 大于 str2"); }
2.不区分大小写比较
//1.1不区分大小写进行比较 NSComparisonResult result2 = [str1 caseInsensitiveCompare:str2]; //1.2不区分大小写的另外一种写法 NSComparisonResult result3 = [str1 compare:str2 options:NSCaseInsensitiveSearch]; NSLog(@"result3 = %li", result3);
3.判断字符串对象是否相等
isEqualToString
4.字符串开头结尾判断
//1.4字符串开头判断 BOOL ret = NO; NSString *str3 = @"www.baidu.com baidu uuu"; ret = [str3 hasPrefix:@"www"]; NSLog(@"ret = %d", ret); //1.5字符串结尾判断 ret = [str3 hasSuffix:@"com"]; if(ret == YES){ NSLog(@"%@ 以com结尾", str3); }
5.字符串拼接
NSString *str4 = @"www"; NSString *str11 = [str4 stringByAppendingString:@".baidu.com"]; NSLog(@"str11 = %@", str11); NSString *str12 = [str4 stringByAppendingFormat:@"rest%d%s", 123, "hello"]; NSLog(@"str11 = %@", str12);
6.字符串提取
NSString *str13 = [str3 substringFromIndex:4]; //从起始位置截取到结束 NSLog(@"str13 = %@", str13); NSLog(@"test = %@", [str3 substringToIndex:4]); //不包含指定位置 NSLog(@"test = %@", [str3 substringWithRange:NSMakeRange(4, 3)]);//起始位置和长度
7.字符串查找
NSRange rage = [str3 rangeOfString:@"baidu"]; //static const NSInteger NSNotFound = NSIntegerMax; if(rage.location != NSNotFound){ NSLog(@"loc = %li, lenth = %li", rage.location, rage.length); } //倒序查找 NSRange rage2 = [str3 rangeOfString:@"baidu" options:NSBackwardsSearch]; if(rage2.location != NSNotFound){ NSLog(@"loc = %li, lenth = %li", rage2.location, rage2.length); } //指定范围查找 NSRange rage3 = [str3 rangeOfString:@"baidu" options:NSLiteralSearch range:NSMakeRange(4, 4)]; if(rage3.location == NSNotFound){ NSLog(@"未查到..."); }
8.字符串大小写转换
NSString *str = @"hello,World,test"; NSLog(@"%@", [str uppercaseString]); //小写转大写 NSLog(@"%@", [str lowercaseString]); //大写转小写 NSLog(@"%@", [str capitalizedString]); //每个单词的小写转大写
9.字符串数值转换
NSString *test = @"1234"; NSLog(@"test = %i", [test intValue]); //转int NSLog(@"test = %li", [test integerValue]);//转NSInteger对象 NSLog(@"test = %.2f", [test floatValue]);
10.字符串置换
NSString *t1 = @"Hello, how are you!"; NSString *t2 = [t1 stringByReplacingCharactersInRange:[t1 rangeOfString:@"how"] withString:@"howw"]; //替换元字符串出现的所有目标字符串 NSString *t3 = [t1 stringByReplacingOccurrencesOfString:@"how" withString:@"howwww"]; NSLog(@"t3 = %@, 原始 = %@", t3, t1);
11.文件的输入输出
NSError *error = nil; NSString *tt1 = [NSString stringWithContentsOfFile:@"/Users/yanzi/Desktop/1.txt" encoding:NSUTF8StringEncoding error:&error]; if(error){ NSLog(@"error = %@", error); }else{ NSLog(@"tt1 = %@", tt1); } //NSString写入文件 NSString *tt2 = @"中国人"; BOOL saveRet = [tt2 writeToFile:@"/Users/yanzi/Desktop/2.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil]; if(saveRet){ NSLog(@"写入成功"); }else{ NSLog(@"写入失败"); }
二,NSMutableString的使用
1.创建和拼接
NSMutableString *mS1 = [NSMutableString stringWithUTF8String:"李小龙"]; [mS1 appendString:@",中国人"]; NSLog(@"mS1 = %@", mS1); //创建指定容量大小的可变字符串对象 //等于@"",空字符串对象,不是nil NSMutableString *ms2 = [[NSMutableString alloc]initWithCapacity:20];
2.插入字符串
[mS1 insertString:@"hello" atIndex:0];//增加字符串
3.删除指定范围的字符串
[mS1 deleteCharactersInRange:NSMakeRange(0, 2)];
4.重置字符串
[mS1 setString:@"中国人民"];
5.用传入的字符串替换指定范围内的字符
[mS1 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"美国"]; NSLog(@"mS1 = %@", mS1); [mS1 replaceOccurrencesOfString:@"美国" withString:@"中国" options:NSLiteralSearch range:NSMakeRange(0, [mS1 length])]; NSLog(@"mS1 = %@", mS1);
系列代码已上传github
1 0
- ObjectC快速入门教程(2)---字符串
- ObjectC快速入门教程(1)--创建类
- ObjectC快速入门教程(3)---数组和字典
- 快速ObjectC基本语法
- ObjectC语言基础2—Foundation、结构体、字符串、集合
- yii快速入门教程2
- Hibernate快速入门教程(2)
- Spark2.x 快速入门教程 2
- C语快速入门教程(2)
- Python快速入门教程2:Python 面向对象
- Subversion快速入门教程(转)
- Struts快速入门教程
- XML快速入门教程
- Subversion快速入门教程
- Maven2快速入门教程
- Subversion快速入门教程
- Subversion快速入门教程
- Subversion快速入门教程
- 云平台选型的思考
- ORACLE 从一个实例迁移到另外一个实例实战记录
- 数据库
- SoundPool播放音效
- tcp连接flags详解
- ObjectC快速入门教程(2)---字符串
- Camera in ROS and VISCA
- rabbitmq——prefetch count
- C/C++ 用C语言实现strstr函数
- 点支配、点覆盖、点独立
- M102: MongoDB for DBAs - Chapter 4: Replication
- poj3723(最大生成树)
- Java 基础与 面向对象
- POJ 2697 - A Board Game