Foundation 框架 NSString常用总结
iOS开发过程中,从始至终都会和NSString打交道,在此总结一下NSString的常用的方法,在以后的学习过程中用到的方法也会继续添加
NSString类是Foundation框架中得不可变字符串,当NSString创建完成后,字符串的内容不可更改,与之对应的是NSMutableString类
一、NSString对象的创建
1.使用类方法(stringWithFormat:)进行字符串创建,此方法可以动态的构建字符串,并且能够给字符串传递参数(推荐)
NSString* str = [NSString stringWithFormat:@"曾经我打听过,你最近的生活 %@", @"love you"];
NSLog(@"%@", str);
2.其他创建方法
// 把C字符串转成OC的字符串对象
char* p = "I love beijing";
NSString* testStr = [[NSString alloc] initWithFormat:@"%s",p ];
NSLog(@"testString = %@",testStr); // 把OC字符串对象转成C字符串
const char* newP = [testStr UTF8String];
NSLog(@"newp = %s",newP); // 与格式控制字符串构建对象的实例方法对应的类方法
// 使用(Foundation框架里的)类方法创建的对象,由自动释放池管理内存
NSString* str2 = [NSString stringWithFormat:@"This is a OC sting %d",];
NSLog(@"str2 = %@",str2);
//=============================================
// 使用一个现有的字符串对象构建一个新的字符串对象
NSString* str = @"I'm a oc string";
NSString* str3 = [[NSString alloc] initWithString:str];
NSLog(@"str3 = %@",str3);
// 与之对应的类方法
NSString* str4 = [NSString stringWithString:str];
NSLog(@"str4 = %@",str4); //==============================================
// 使用一个C字符串构建一个OC的字符串对象
NSString* str5 = [[NSString alloc] initWithUTF8String:"This is a c String"];
NSLog(@"str5 = %@",str5);
// 与之对应的类方法
NSString* str6 = [NSString stringWithUTF8String:"This is a c String"];
NSLog(@"str6 = %@",str6); //==============================================
// 使用文件内容构建一个字符串对象 NSString* filePath = @"/Users/qianfeng/Desktop/test.txt";
/*
第一个参数:读取的文件的路径
第二个参数:指定编码集为NSUTF8String
第三个参数:用于存放读取文件过程中的错误信息
*/
NSError* error = nil;
NSString* str7 = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
NSLog(@"str7 = %@",str7);
二、NSString常用操作
//获取字符串长度(length)
NSString* str = [NSString stringWithFormat:@"曾经我打听过,你最近的生活 %@", @"love you"];
NSUInteger lenth = [str length];
NSLog(@"%ld", lenth);
NSLog(@"%@", str);
//NSRange
/*
NSRange在Foundation框架中定义如下
typedef struct _NSRange {
NSUInteger location; //表示位置
NSUInteger length; //长度
} NSRange;
*/
NSString* str2 = @"忙碌工作之余是否有运动?";
NSString* subString = @"忙碌";
//查找子串(从0开始)
NSRange range = [str2 rangeOfString: subString];
//打印框架内结构体的方法
NSLog(@"%@", NSStringFromRange(range));
//使用框架创建range
NSRange newRange = NSMakeRange(, );
NSString* newTemp = [str2 substringWithRange: newRange];
NSLog(@"%@", newTemp);
//判断是否在父串中找到子串
if (range.location == NSNotFound) {
NSLog(@"Can't fount");
}else{
NSLog(@"Got it!");
}
//字符串比较(大小)
NSString* strA = @"chengDu";
NSString* strB = @"chongQing";
//compare:方法的返回值类型为NSComparisonResult(枚举值),其中
//NSOrderedSame表示相等 NSOrderedAscending表示升序(小于)
//NSOrderedDescending 表示降序(大于)
if ([strA compare: strB] == NSOrderedSame) {
NSLog(@"相等");
}else if([strA compare: strB] == NSOrderedAscending){
NSLog(@"小于");
}else{
NSLog(@"大于");
}
//字符串比较(是否相等)
BOOL isEqule = [strA isEqualToString: strB];
NSLog(@"The result is : %d", isEqule); //判断字符串前后缀
NSString *fileString = @"/Users/student/DeskTop/file.txt";
//判断前缀(hasPrefix:)方法
BOOL isPrefix = [fileString hasPrefix:@"/Users"];
//判断后缀 (hasSuffix:)方法
BOOL isSuffix = [fileString hasSuffix: @".txt"];
NSLog(@"isPrefix = %d, isSuffix = %d", isPrefix, isSuffix);
//字符串转换为数字
/*
框架提供的字符串转换的方法如下:
- (double)doubleValue;
- (float)floatValue;
- (int)intValue;
- (NSInteger)integerValue NS_AVAILABLE(10_5, 2_0);
- (long long)longLongValue NS_AVAILABLE(10_5, 2_0);
- (BOOL)boolValue NS_AVAILABLE(10_5, 2_0);
*/
NSString* strToNum = @"12345.234";
int result = [strToNum intValue];
NSLog(@"result = %d", result);
Foundation 框架 NSString常用总结的更多相关文章
- foundation 框架 NSString常用总结(二)
以此作为NSString常用总结(一)的补充 NSString* str = [NSString stringWithFormat:@"I love programing! You, com ...
- iOS Foundation框架 -2.常用集合类简单总结
Foundation框架中常用的类有:NSString.NSArray.NSSet.NSDictionary 以及它们对应的子类 NSMutableString.NSMutableArray.NSMu ...
- iOS Foundation框架 -1.常用结构体的用法和输出
1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...
- Foundation框架-NSString和NSMutableString
可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式 2.3 从文件中 ...
- [OC Foundation框架 - 1] 常用结构体
底层封装是使用了typedef定义的结构体 typedef struct _NSString{ xxx xxx } NSString; 1. NSRange 结构体 #注意结构体不是对象 3种定义 ...
- OC本学习笔记Foundation框架NSString与NSMutableString
一.NSString与NSMutableString 相信大家对NSString类都不陌生.它是OC中提供的字符串类.它的对象中的字符串都是不可变的,而它的子类NSMutable ...
- Objective-C:Foundation框架-常用类-NSString全解
Foundation框架中常用的类有字符串.集合.字典等,这里介绍字符串NSString.本文分别介绍了NSString的创建.从文件里读取NSString字符串.通过函数改变外部的NSString变 ...
- iOS Foundation框架简介 -1.常用结构体的用法和输出
1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...
- 13.Object-C--浅谈Foundation框架常用的结构体
------- android培训.iOS培训.期待与您交流! ---------- 昨天学习了Foundation框架中常用的结构体,下面我简单的总结一下,如果错误麻烦请留言指正,谢谢! Found ...
随机推荐
- cad画指定大小矩形
指定基点后输入(@长度,宽度)回车 举例:如你要画个600*300的矩形 则输入@600,300回车
- qtcreator增加doxygen注释
1,在以下网址找到和你的qt creator版本相对应的插件文件,还要注意系统版本 http://dev.kofee.org/projects/qtcreator-doxygen/files 2,根据 ...
- 《windows程序设计》学习_4:文本输出,加滚动条
//总行数 #define NUMLINES ((int) (sizeof sysmetrics / sizeof sysmetrics [0])) struct { int Index ; TCHA ...
- 【MongoDB数据库】MongoDB 命令入门初探
MongoDB是一款NoSql数据库,使用了"面向集合"(Collection-Oriented)原理,意思是数据被分组存储在数据集中,被称为一个集合(Collection).每一 ...
- 分布式ElasticSearch简单介绍
这里我们解释一些通用的术语,比如集群(cluster).节点(node)和分片(shard).Elasticsearch的扩展机制,以及它怎样处理硬件故障.在此将探索怎样创建你的集群(cluster) ...
- winfrom播放动态图片
winfrom是不能直接加载的动态图片的.只能够自己写方法实现. 具体代码如下: using System; using System.Collections.Generic; using Syste ...
- 单例模式 GetInstance()
如何设计一个含GetInstance()函数的类 直接上代码: 头文件(MyClass.h): class CMyClass { public: CMyClass(void); ~CMyClass(v ...
- ASP.Net中使用Report Service
昨天研究以下Report Service,发现SQL Service自带的报表服务器也非常强大, 一,报表在不同的应用中表现形式 参考:http://www.cnitblog.com/yide/arc ...
- Clamp函数
Clamp函数可以将随机变化的数值限制在一个给定的区间[min, max]内: template<class T> T Clamp(T x, T min, T max) { if (x & ...
- 利用merge存储引擎来实现分表
我觉得这种方法比较适合,那些没有事先考虑,而已经出现了得,数据查询慢的情况.这个时候如果要把已有的大数据量表分开比较痛苦,最痛苦的事就是改代码,因为程序里面的sql语句已经写好了,现在一张表要分成几十 ...