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常用总结的更多相关文章

  1. foundation 框架 NSString常用总结(二)

    以此作为NSString常用总结(一)的补充 NSString* str = [NSString stringWithFormat:@"I love programing! You, com ...

  2. iOS Foundation框架 -2.常用集合类简单总结

    Foundation框架中常用的类有:NSString.NSArray.NSSet.NSDictionary 以及它们对应的子类 NSMutableString.NSMutableArray.NSMu ...

  3. iOS Foundation框架 -1.常用结构体的用法和输出

    1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...

  4. Foundation框架-NSString和NSMutableString

    可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式  2.3 从文件中 ...

  5. [OC Foundation框架 - 1] 常用结构体

    底层封装是使用了typedef定义的结构体 typedef struct _NSString{ xxx xxx } NSString;   1. NSRange 结构体 #注意结构体不是对象 3种定义 ...

  6. OC本学习笔记Foundation框架NSString与NSMutableString

       一.NSString与NSMutableString         相信大家对NSString类都不陌生.它是OC中提供的字符串类.它的对象中的字符串都是不可变的,而它的子类NSMutable ...

  7. Objective-C:Foundation框架-常用类-NSString全解

    Foundation框架中常用的类有字符串.集合.字典等,这里介绍字符串NSString.本文分别介绍了NSString的创建.从文件里读取NSString字符串.通过函数改变外部的NSString变 ...

  8. iOS Foundation框架简介 -1.常用结构体的用法和输出

    1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...

  9. 13.Object-C--浅谈Foundation框架常用的结构体

    ------- android培训.iOS培训.期待与您交流! ---------- 昨天学习了Foundation框架中常用的结构体,下面我简单的总结一下,如果错误麻烦请留言指正,谢谢! Found ...

随机推荐

  1. 透明窗口(窗口上面文字图片等内容不透明)的实现(使用SetLayeredWindowAttributes API函数)

    透明窗口(窗口上面文字图片等内容不透明)的实现 本文讨论通过SetLayeredWindowAttributes来实现本文的目的. SetLayeredWindowAttributes的实现必须将窗口 ...

  2. linux中读写锁的rwlock介绍-nk_ysg-ChinaUnix博客

    linux中读写锁的rwlock介绍-nk_ysg-ChinaUnix博客 linux中读写锁的rwlock介绍 2013-02-26 13:59:35 分类: C/C++   http://yaro ...

  3. Wet Shark and Flowers(思维)

    C. Wet Shark and Flowers time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  4. Android Afinal框架学习(二) FinalActivity 一个IOC框架

    框架地址:https://github.com/yangfuhai/afinal 相应的源代码: net.tsz.afinal.annotation.view.* FinalActivity Fina ...

  5. HDOJ2031进制转换

    项目做久了,我发现自己对代码的实现能力越来越差劲了!经过前一段时间找工作的经历就能够明显感觉的到自己的代码熟练度不够!因此,今后要多加练习.要想做好一个优秀的程序猿就要多写程序,多思考. ★结题思路 ...

  6. Objective-C官方文档翻译 Block

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 一个Objective-c类定义了一个对象结合数据相关的行为.有时候,这使得他有意义的表达单个任务或者单元的行为.而不是集合的方法. blocks是 ...

  7. Dictionary<string, string> 排序

    .net framework 2.0 版 Dictionary<string, string> collection = new Dictionary<string, string& ...

  8. Struts2知识总结

    整篇参考:http://blog.csdn.net/zq9017197/article/details/5958627 要搞清楚以下几点: 1.Struts2是什么?它的运行原理是什么? 2.Stru ...

  9. linux杂记(十)what is BASH Shell

    first,what is shell?其实只要是碰过计算机的,对于OS(Operation System操作系统,不管是linux.unix.windows)有点概念的人大多都听过这个名词,因为只要 ...

  10. Unity3D移植到自己的Android程序

    用Unity3D开发需要把动画效果移植到现有的APP上面.Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添 ...