创建方式

 )直接赋值
NSString *str =@"abc";
)创建对象
NSString *str2 = [[NSString alloc]init];
str2 =@"abc"
)格式化创建
NSString *str3=[NSString stringWithFromat :@"@",@"abc"]; )从文件中获取
NSString strand =[NSString stringWithContentsOfFile:@"/Users/apple/Desktop/test.txt" usedEncoding:NSUTF8StringEncoding error:&err]; )把字符串写入到文件
NSString *str7 = @"abc";
//路径 //原子性
str7 writeToFile :(NNString *) atomically :(BOOL)
//编码格式 //错误信息
encoding:(NSStringEncoding) error:(NSError **); NSERROR *err=nil;
BOOL flag=str7 writeToFile:@"/Users/apple/Desktop/test.txt" atomically:NO encoding : NSUTF8StringEncoding error:(&err];
if(flag){
NSLog(@"写入成功");
} if(err != nil){
NSLog(@"写入失败");
}else{
NSLog(@"写入成功");
}

使用NSURL读写字符串

 //1)使用NSURL 写入字符串数据到文件中

 NSURL *writeUrl = [NSURL URLWithString:@"file:///Users/apple/Desktop/1.txt"];

 NSString *str =@"itcast";

 BOOL isSucess = str writeToURL :writeUrl atomically:NO encoding:NSUTF8StringEncoding error:nil];

 if(isSucess){
NSLog(@"写入成功");
} //2)使用NSURL读取字符串到文件 NSURL *readUrl =[NSURL URLWithString:@"file:////Users/apple/Desktop/1.txt"]
NSString *straighten = [NSString stringWithContentsOfURL:readUrl encoding :NSUTF8StringEncoding error:nil];
NSLog(@"%@",str2);

NSString 字符串的比较

 )比较两个字符串大小
compare 方法:返回结果有三种:
NSOrderedAscending str < str2 -
NSOrderedSame str == str2
NSOrderedDescending str >str2 )比较时指定条件
如果要忽略大小写的话,可以在options 里面加入参数 NSCaseInsensitiveSearch [str1 compare: str2 options:NSCaseInsensitiveSearch]; 条件有很多:
NSCaseInsensitiveSearch: 不区分大小写字符
NSLiteralSearch: 进行完全比较,区分大小写(默认)
NSNumericSearch: 比较字符串的字符个数,而不是字符值
..... 等等 还有很多 )判断是否相同
isEqualToString
) NSString前后缀检查
判断字符串是否以另一个字符串开头
-(BOOL) hasPrefix:(NSString *) aString
以什么结尾
-(BOOL) hasSuffix :(NSString *) aString
)字符串的查找
判断是否包含某个字符串,返回的为第一次出现的范围,NSRange包含两个成员 location :位置 length 长度, 如果查找不到,返回的Ranage的长度为0,位置为一个特别大得数
-(NSRange) rangeOfString:(NSString *) aString; 反向判断是否包含(加入条件 NSBackwardsSearch]
-(NSRange) rangeOfString :(NSString *) options: NSBackwardsSearch if(range.location != NSNotFound)   6)字符串的截取
     从指定位置from开始(包括指定位置的字符)到末尾
    -(NSString *) substringFromIndex:(NSUInteger) from;
     从开头截取至to的位置,不包含to位置的字符
    -(NSString *) substringToIndex :(NSUInteger) to;
      按照所给出的NSRange从字符串截取子串
    -(NSString *)substringWithRange:(NSRange) range;
  7)字符串的替换
      用replacement替换target
    -(NSString *) stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
   8) 获取字符串的长度
    -(NSUInteger) length;
   9) 返回index位置对应的字符
    -(unichar)characterAtIndex:(NSUInteger)index;
   10)字符串和其他数据类型的转换
    -(double) doubleValue
    -(float) floatValue
    -(int) intValue
    OC的字符串和C的字符串的互转
    NSString *s4=@"helloworld";
    const char *ss =[s4 UTF8String];     char ch[]="itcast";
    NSString *ocString =[NSString stringWithUTF8String :ch];
   11)去除空格
        去除所有的空格
       [str stringByReplacingOccurrencesOfString:@" " withString"@""]
        去除首尾的空格
       [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
        去除头尾的小写字母
       lowercaseLetterCharacterSet
        去除头尾的大写字母
       uppercaseLetterCharacterSet
        去掉头尾的指定字符串
       characterSetWithCharactersInString:(NSString *)aString;

NSRange使用

 NSRange是Foundation框架中比较常用的结构体,
type struct _NSRange{
NSUInteger location;
NSUInteger length;
}
//NSUInteger 的定义
typedef unsigned int NSUInteger;
typedef unsigned long NSUInteger;
  通常用来表示一个范围,字符串里的字符长度,数组中元素的范围 创建:
  1)直接赋值
     NSRange range = {2,5};
  2)先定义后赋值
     NSRange range2;
     range2.location = 1;
     range2.length = 23;
  3)使用NSMakeRange 创建一个NSRange类型的变量
    NSRange range3 = NSMakeRange(45 ,3);   

NSMutableString 的概念

 NSMutableString类 继承NSString类,那么NSString提供的方法在NSMutableString中基本都可以使用,NSMutableString好比一个字符串链表,它可以任意的动态在字符串中添加字符串 ,删除字符串 ,指定位置插入字符串,使用它来操作字符串会更加灵活
--类似于java中的StringBuffer /StringBuilder

NSMutableString特有的方法

 具有NSString的所有方法

 创建一个空字符串
NSMutableString *str2 = [NSMutableString string];
给字符串追加内容
[str2 appendString:@"welcome"];
拼接一段格式化字符串到最后面
-(void) appendFormat:(NSString *)format,...;
从指定的range开始,删除字符
-(void) deleteCharactersInRange:(NSRange) range;
在loc这个位置插入aString
-(void)insertString:(NSString *) aString atIndex:(NSUInteger)loc;
使用aString替换range范围内的字符串,一般不是以string开头的一般都不会产生一个新的字符串,replaceOccurrencesOfString方法不需要传范围参数
-(void)replaceCharactersInRange:(NSRange)range withString :(NSString *)aString; 替换需要传入range 通常配合rangeOfString 一起使用
NSRange rage =[str rangeOfString:@"itcast"];

注意事项:

 )
NSMutableString *str =@"xxx"; //这种方式创建的是NSString而不是NSMutableString )NSMutableString的string属性:会将源对象的所有字符串都覆盖掉
.string 属性可以修改字符串的内容 例如:
NSMutableString *str =[NSMutableString string];
[str appendString:@"itcast"];
str.string=@"a";
)位枚举,枚举值是2的0次方、1次方、2次方...
String 的附带条件 options 所传入的就是位枚举, 所以可以直接输入 4等

OC中Foundation框架之NSString、NSMutableString的更多相关文章

  1. OC中Foundation框架

    框架的概念 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的组合,以便使研发程序变的更容易在OS X下地Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架 ...

  2. OC中Foundation框架之NSDictionary、NSMutableDictionary

    NSDictionary概述 NSDictionary的作用类似:通过一个key ,就能找到对应的value 同样 NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改 NSDic ...

  3. OC中Foundation框架之NSArray、NSMutableArray

    NSArray概述 NSArray是OC中的数组类 NSArray特点 )只能存放任意OC对象,并且是有顺序的 )不能存放非OC对象,比如int/float/double/char/enum/stru ...

  4. Foundation框架之NSString及其Mutable类型

    Foundation框架之NSString及其Mutable类型 目录 概述 对字符串的实用操作 拼接 拆分 字符串比较 是否包含某字符串 字数统计 大小写转换 具体的方法参见API 待研究 概述 对 ...

  5. OC - 7.Foundation框架的简单介绍

    OC语言-07-OC语言-Foundation框架   结构体 NSRange/CGRange 用来表示一个元素在另一个元素中的范围,NSRange等价于CGRange 包含两个属性: NSUInte ...

  6. 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString

    OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...

  7. [OC Foundation框架 - 4] NSString的导出

      void exportString() { NSString *str = @"Hello, 坑爹"; NSString *path = @"/Users/hello ...

  8. [OC Foundation框架 - 2] NSString 的创建

    A. 不可变字符串 void stringCreate() { //Don't need to release memory by this way NSString *str1 = @"S ...

  9. [OC Foundation框架 - 5] NSString的常用方法

             NSString *s1 = ";   1.比较 使用 == 号比较的是字符串地址 NSString *s4 = @"abcdefg"; NSStrin ...

随机推荐

  1. 5种方法推导Normal Equation

    引言: Normal Equation 是最基础的最小二乘方法.在Andrew Ng的课程中给出了矩阵推到形式,本文将重点提供几种推导方式以便于全方位帮助Machine Learning用户学习. N ...

  2. CSS.03 -- 浏览器行高、字体;盒子模型--边框、内边距、外边距

    如果此时你也在自学中,请使用 FireWorks CS6 进行切图测距等,百度一下吧~ Fireworks的基本使用 新建文件   ctrl+n 打开文件  ctrl+o 调出和隐藏标尺 ctrl+r ...

  3. unity传送门类似效果实现

    简述 在传送门中,核心的玩法是在地上或者墙上打开2个可以联通的洞来实现传送的效果.以此扩展加入解谜要素构成游戏的核心. 这里尝试使用unity来实现传送门的核心功能,具体功能分析如下: 1.传送门的模 ...

  4. 无线接收信号强度(RSSI)那些事儿

    本文由嵌入式企鹅圈原创团队成员黄鑫供稿. 本文所述的原理适用于所有无线传输技术,只是用蓝牙来举例.应该说,嵌入式企鹅圈更加偏重于嵌入式和物联网.安卓技术原理方面的知识分享和传播,其次才是实践,尽管很多 ...

  5. 老李分享:持续集成学好jenkins之安装

    老李分享:持续集成学好jenkins之安装   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  6. 老李分享:Android性能优化之内存泄漏2

    这种创建Handler的方式会造成内存泄漏,由于mHandler是Handler的非静态匿名内部类的实例,所以它持有外部类Activity的引用,我们知道消息队列是在一个Looper线程中不断轮询处理 ...

  7. jenkins容器权限被被拒绝

    问题,我们从官网上面pull下jenkins后,如果直接运行容器的没问题 docker run -d -p 8080:8080 -v jenkins:latest 不过我们可能需要映射下容器内部的地址 ...

  8. XMLHttpRequest API 使用指南

    一.实例化 XMLHttpRequest 对象 使用 Ajax API 的第一件事情就是实例化 XMLHttpRequest 对象. var xhr = new XMLHttpRequest(); 二 ...

  9. 利用sub lr,lr,#4:程序是如何进行返回的?

    1: ARM采用的是3级流水线 ARM的流水线结构为:   取指 -----> 译码 ------> 执行 ARM代码:                  PC           PC- ...

  10. 百度Web前端面试经历

    今天面了百度的前端实习职位.一面.时间大概是50分钟.面试官是位很帅气的小伙子,非常友好的一个人.进门的时候他让我等一会,我瞄了一眼他的电脑屏幕,发现他在coding…… 9点50开始的面试. 面试官 ...