黑马程序员—Foundation框架之NSString
来源:互联网 发布:指纹充电下载软件 编辑:程序博客网 时间:2024/05/21 17:53
一、Foundation框架
1、其实也就是众多功能/API的集合
2、Foundation框架的作用:
1)Foundation框架是Mac/iOS中其他框架的基础
2)Foundation框架包含了很多开发中常用的数据类型:结构体、枚举、类
3、要想使用Foundation框架中的功能,包含它的主文件即可
4、Foundation框架提供的类:
1)NSString:字符串
2)NSArray:数组
3)NSDictionary : 字典
4)NSDate : 日期
5)NSData : 数据
6)NSNumber : 数字
二、NSString
1、什么是NSString
1)一个NSString对象就代表一个字符串(文字内容)。
2)NSString是不可变字符串,即字符串的内容在内存中是不可变的。
3)针对此字符串的操作(如拼接,删除等),都是拷贝字符串到新的字符串中进行操作,并返回新字符串。
2、NSString的创建方式
1)最直接的方式
NSString *str = @“My name is Jiangkang!”;2)格式化的方式
NSString *str = [NSString stringWithFormat:@"My age is %d", 10];NSString *str = [[NSString alloc] initWithFormat:@"My age is %d", 10];3)总结:上面两种创建字符串的区别:
1>堆、栈、常量区域。通过%p查看一下内存地址。
2>对于同一个常量字符串,只保存一份。
3>而通过stringWithFormat创建的两个相同的字符串内存中也是两个不同的堆对象。
4)从文件中读取
// 用来保存错误信息NSError *error = nil;// 读取文件内容NSString *str = [NSString stringWithContentsOfFile:@"/Users/Jiangkang/Desktop/test.txt" encoding:NSUTF8StringEncoding error:&error];// 如果有错误信息if (error) { NSLog(@"读取失败, 错误原因是:%@", [error localizedDescription]);} else { // 如果没有错误信息 NSLog(@"读取成功, 文件内容是:\n%@", str);}三、NSString中常用的方法及用法
1、NSString的大小写处理
1)- (NSString *)uppercaseString:将全部字符转为大写字母
#import <Foundation/Foundation.h>int main(){ NSString *str1 = @"hello world!"; str1 = [str1 uppercaseString]; NSLog(@"%@", str1); // 输出:HELLO WORLD! return 0;}2)- (NSString *)lowercaseString:全部字符转为小写字母
#import <Foundation/Foundation.h>int main(){ // - (NSString *)lowercaseString:全部字符转为小写字母 NSString *str2 = @"HELLO WORLD!"; str2 = [str2 lowercaseString]; NSLog(@"%@", str2); // 输出:hello world! return 0;}3)- (NSString *)capitalizedString:首字母变大写,其他字母都变小写。如果一个句子中有多个单词,那么会将每个单词的首字母变成大写,其余字母变成小写。
#import <Foundation/Foundation.h>int main(){ NSString *str3 = @"huGklh vYj ctCv!"; str3 = [str3 capitalizedString]; NSLog(@"%@", str3); // 输出:Hugklh Vyj Ctcv! return 0;}2、NSString的比较
1)- (NSComparisonResult)compare:(NSString *)string:这个方法可以用来比较两个字符串内容的大小
2)- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask:这个方法可以增加条件
#import <Foundation/Foundation.h>int main(){ NSString *str1 = @"abc"; // a 97 NSString *str2 = @"Abc"; // A 65 NSComparisonResult result = [str1 compare:str2]; //2、比较的时候,不区分大小写,参考字符的个数 NSComparisonResult result2 = [str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch]; // switch (result) { case NSOrderedAscending: NSLog(@"str1 < str2 升序"); break; case NSOrderedDescending: NSLog(@"str1 > str2 降序"); break; case NSOrderedSame: NSLog(@"str1 == str2 "); break; default: break; } return 0;}注意:1>比较方法: 逐个字符地进行比较ASCII值,返回NSComparisonResult作为比较结果
2>compare方法默认的是区分大小写的
3>compare这个函数不能增加条件
4>compare: options 函数是可以增加条件的,其中条件NSCaseInsensitiveSearch是不区分大小写,NSNumericSearch是参考字符的个数
5>NSOrderedAscending:升序,NSOrderedDescending:降序,NSOrderedSame:相等
3)- (BOOL)isEqualToString:(NSString *)aString:两个字符串的内容相同就返回YES, 否则返回NO
注意:1>这个是地址的比较,返回BOOL类型结果
2> "==" 不能够判断字符串是否相等的
3>他是区分大小写的
4)- (NSComparisonResult) caseInsensitiveCompare:(NSString *)string:忽略大小写进行比较,返回值与compare:一致
3、NSString前后缀检查及搜索
1)- (BOOL)hasPrefix:(NSString *)aString:是否以aString开头
2)- (BOOL)hasSuffix:(NSString *)aString:是否以aString结尾
int main(){ NSString *url = @"https://ios.itcast.cn"; // [str hasPrefix:@"要检测的内容"]; if([url hasPrefix:@"http://"]||[url hasPrefix:@"https://"]){ NSLog(@"是一个网址"); }else{ NSLog(@"这不是一个网址"); } //检测字符串的后缀 NSString *imgName = @"xxxxx.doc"; // [str hasSuffix:@"带检测的后缀"] if([imgName hasSuffix:@".jpg"]||[imgName hasSuffix:@".png"]||[imgName hasSuffix:@".jpeg"]||[imgName hasSuffix:@".gif"]){ NSLog(@"是一个图片"); }else{ NSLog(@"这不是一个图片"); }return 0;}3)- (NSRange)rangeOfString:(NSString *)aString:用来检查字符串内容中是否包含了aString
#import <Foundation/Foundation.h>int main(){ NSString *str1 =@"asdaiosffsdafiosasdfsffitcastasdfasd"; NSString *str2 =@"ios"; // 字符串查找 // range 结构体变量 NSRange 结构别名 NSRange range = [str1 rangeOfString:str2]; //判断是否查找到了 if(range.location!=NSNotFound){ //range.location 表示字符串首次出现的位置 //range.length 字符串出现的长度(实质上就是子字符串的长度) NSLog(@"%lu,%lu",range.location,range.length); }else{ NSLog(@"在%@中没有找到这个字符串%@",str1,str2); } return 0;}注意:如果查找不到,返回的信息:location 特别大的数(NSNotFound) 最大的long类型的数length 0
- 黑马程序员—Foundation框架之NSString
- 黑马程序员-Foundation框架之NSString
- 黑马程序员-----Foundation框架学习之NSString
- 【黑马程序员】Foundation框架NSString
- 黑马程序员-----oc语言学习笔记之foundation框架-NSString
- 黑马程序员--OC的Foundation框架之NSString
- 黑马程序员-----Foundation框架学习之NSString续
- 黑马程序员——Foundation框架——NSString
- 【黑马程序员】OC-Foundation框架—NSString和NSRange
- 黑马程序员------Foundation框架NSString&NSArray
- 黑马程序员——Foundation框架:结构体及字符串之NSString
- 黑马程序员—Foundation框架之NSMutableString及NSString的其它用法
- 黑马程序员——Foundation学习之NSString\NSMutableString
- 黑马程序员——OC基础---Foundation之NSString
- 黑马程序员-[OC语言] 第六篇:foundation框架之 NSString 基本用法
- 黑马程序员--OC学习篇之Foundation框架中的NSString对象和NSMutableString对象
- 黑马程序员---OC学习笔记之Foundation框架:NSString的基本使用
- Foundation框架之NSString
- mac grep: /usr/include/php/main/php.h: No such file or directory
- bnuoj 24250 Binary Operations (概率DP)
- Forbidden You don't have permission to access / on this server.解决方法
- json之将json格式字符串数据转换为实体类.
- zookeeper(三)配置
- 黑马程序员—Foundation框架之NSString
- 嵌入式C语言中的Doxygen注释模板
- Qt Creator 常用快捷键
- /persistence.cpp:5008: error: (-2) The node does not represent a user object (unknown type?) in func
- 干蹦轮播
- 如何导入support_V4包中源码
- likely() and unlikely()
- 论c程序员转java学习
- 简单理解js面向对象工厂方式