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. android DatePickerDialog theme

    网上搜索了下没有找到DatePickerDialog的各种 Theme 的样例.我就一个一个试了下,传上图片 DatePickerDiaolog有两个构造函数分别是: DatePickerDialog ...

  2. Delphi中运行时改变panel的位置及大小(WM_SysCommand消息配合参数使用,很奇妙) good

    procedure TForm1.pnl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Inte ...

  3. /dev/null &

    java -cp .:ojdbc14.jar com.eucalyptus.dataguard.DBCheck dadifilm slbcheck Aa7788123 > /dev/null & ...

  4. 关于jquery的each的操作;

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. Leetcode:Swap Nodes in Pairs 单链表相邻两节点逆置

    Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-& ...

  6. android上下文

    在android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder( ...

  7. 多个Activity之间的切换与数据交互

    总结 两个activity之间切换我概括的分为两步: 1. 代码实现切换操作.2.配置中声明另外一个acitivity! 1. 代码实现切换操作 显示定义一个intent 对象,Intent 这个类的 ...

  8. C++中const简介及用法

    1.const简介 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰 ...

  9. 在Windows7防火墙允许指定的端口

    在xp系统的时代,修改防火墙很方便,很简单.windows7或许是做得过于复杂了.当然所谓安全性也是相当于其他之前版本的系统更高了.为什么要打开端口,肯定是在windows7下启动了网络服务,需要开启 ...

  10. firebreath注册接口

    对firebreath文档进行翻译,顺便做个笔记,原地址:http://www.firebreath.org/display/documentation/JSAPIAuto 综述: 你可能会对需要转换 ...