IOS阶段学习第13天笔记(NSString与NSMutableString)

IOS学习(OC语言)知识点整理

一、OC字符串的操作

1)OC中字符串分为两种:

1、不可变字符串NSString:不能修改对象内容,但是可以改变对象的指针。

2、可变字符串NSMutableString:可以修改对象内容。

二、NSString 不可变字符串的操作

1)将字符串常量对象直接赋值给字符串引用 NSString *[email protected]"hello"; 字符串对象的输出格式:NSLog(@"str1=%@",str1)。

2)initWithString可将OC中的字符串对象构建字符串引用  NSString *str2=[[NSString alloc]initWithString:str1]; 。

3)initWithUTF8String可将C语言的字符串创建OC的字符串对象,将C字符串转换为OC字符串: NSString *str3=[[NSString alloc]initWithUTF8String:"iOS"];

4)initWithFormat可将OC的格式化字符串创建OC的字符串对象int age=20;

NSString *str4=[[NSString alloc]initWithFormat:@"name is %@,age is  %d",str1,age];

5)可使用.length方法获取字符串的长度 NSUInteger len= str1.length;

6)characterAtIndex可根据下标取出某个字符 如: NSString *[email protected]"hello"; unichar c= [str1 characterAtIndex:0]; 结果为:h

7)compare用于比较两个字符串,该方法区分大小写, 返回结果为NSComparisonResult 枚举类型数据 枚举值有

1、NSOrderedAscending 表示前一个字符串小于后一个字符串

2、NSOrderedSame 表示两个字符串相等

3、NSOrderedDescending 表示前一个字符串大于后一个字符串

实例代码:

 1 NSString *str1=@"hello";
 2 NSString *str3=[[NSString alloc]initWithUTF8String:"iOS"];
 3 NSComparisonResult cmp=[str1 compare:str3];
 4  if(cmp==NSOrderedAscending){
 5    NSLog(@"%@<%@",str1,str3);
 6  }else if (cmp==NSOrderedSame){
 7    NSLog(@"%@=%@",str1,str3);
 8  }else if (cmp==NSOrderedDescending){
 9    NSLog(@"%@>%@",str1,str3);
10  }//结果:hello<iOS

8)caseInsensitiveCompare 不区分大小写比较字符串;比较字符串,可以设置比较选项

NSNumericSearch:如果字符串中有数字, 按数字大小比较,例如:ios5<iso12

NSCaseInsensitiveSearch:不区分大小写比较,例如iOS7=ios7

实例代码:

 1 NSComparisonResult cmp=[str1 caseInsensitiveCompare:str3];
 2 str1=@"iOS7";
 3 str3=@"ios7";
 4 cmp=[str1 compare:str3 options:NSCaseInsensitiveSearch];
 5 if(cmp==NSOrderedAscending){
 6  NSLog(@"%@<%@",str1,str3);
 7  }else if (cmp==NSOrderedSame){
 8   NSLog(@"%@=%@",str1,str3);
 9 }else if (cmp==NSOrderedDescending){
10    NSLog(@"%@>%@",str1,str3);
11  } 结果:iOS7=ios7

9)isEqualToString 比较2个字符串内容是否相等,返回BOOL(YES/NO)值

实例代码:

1 NSString *str1=@"hello";
2 NSString *str2=[[NSString alloc]initWithString:str1];
3 if([str1 isEqualToString:str2]){
4     NSLog(@"%@ equal %@",str1,str2);
5  }//结果:hello equal hello

10)uppercaseString 将小写字母字符串转为大写   NSString *[email protected]"hello";NSString *str6=[str1 uppercaseString];

结果为:HELLO

11)lowercaseString 将大写字母字符串转为小写 。

12)hasPrefix 判断是否以某个字符串开头(作为前缀)例如 :

NSString  [email protected]"www.baidu.com";

if([str1 hasPrefix:@"www"]){

NSLog(@"yes");

}  结果:yes

13)hasSuffix 判断是否以某个字符串结尾(后缀)例如:

NSString  [email protected]"www.baidu.com";

if([str1 hasSuffix:@"com"]){

NSLog(@"yes");

}结果:yes

14)substringFromIndex 从某个下标开始取子字符串(到结束)例如:

NSString  [email protected]"This is string A";

NSString *res=[str1 substringFromIndex:1]; 结果:his is string A

15)substringToIndex 从第一个字符开始取到某个下标的子字符串,不包括当前数字对应的字符,取当前数字下标前面字符

例如:

NSString  [email protected]"This is string A";

NSString  *res=[str1 substringToIndex:2];结果:Th

[[str1 substringFromIndex:8] substringToIndex:5];结果: strin

16)substringWithRange 根据范围返回子字符串

NSRange range={8,5};//直接给范围值

range=NSMakeRange(8, 5);//通过函数返回一个范围的变量

NSString  [email protected]"This is string A";

NSString res=[str1 substringWithRange:range]; 结果:strin

17)rangeOfString 在字符串中查找子字符串,返回这个字符串的所在位置以及长度 NSRange

例如:

NSString  [email protected]"This is string A";

NSRange  range=[str1 rangeOfString:@"string"]; 结果:{8,6}

if(range.location!=NSNotFound){

NSLog(@"find");

}结果:find

三、NSMutableString 可变字符串的操作

1)initWithString 用不可变字符串创建可变字符串对象 例如:

NSString *[email protected]"This is string B";

NSMutableString *mStr=[[NSMutableString alloc]initWithString:str];

2)insertString 在指定下标位置插入一个字符串 例如:

NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];

[mStr insertString:@"hello " atIndex:0]; 结果:hello This is string B

3)appendString 在字符串后面追加字符串 例如:

NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];

[mStr appendString:@" shanghai”];结果:This is string B shanghai

4)appendFormat 在字符串后面追加一个格式化字符串 例如:

NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];

[mStr appendFormat:@" %d",20];结果:This is string B 20

5)deleteCharactersInRange 将指定范围的字符串删除 例如:

NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];

[mStr deleteCharactersInRange:NSMakeRange(0, 6)]; 结果: s string B

6)replaceCharactersInRange 将指定范围的字符串用新的字符串替换 例如:

1 NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
2 [mStr replaceCharactersInRange:NSMakeRange(2, 2) withString:@"IS"]; //结果:ThIS is string B
3  //将字符串中所有的is替换为IS
4  NSRange range=[mStr rangeOfString:@"is"];
5  while (range.location!=NSNotFound) {
6       [mStr replaceCharactersInRange:range withString:@"IS"];
7       range=[mStr rangeOfString:@"is"];
8  }

7)replaceOccurrencesOfString 将字符串中指定范围内所有的is替换成IS 例如:

NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];

[mStr replaceOccurrencesOfString:@“is” withString:@“IS” options:1 range:NSMakeRange(0, mStr.length)];

结果:ThIS IS string B

8)setString 修改字符串内容 例如: NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];

[mStr setString:@"hello"]; 结果:hello

时间: 2024-12-25 23:26:37

IOS阶段学习第13天笔记(NSString与NSMutableString)的相关文章

IOS阶段学习第13天笔记(多态)

IOS学习(OC语言)知识点整理 一.多态 1)多态的通俗理解,即一个方法多种形态. 2)多态的赋值兼容:即父类的引用可以指向子类的对象. 3)在多态中调用方法时看对象,不看指针,即我们要看执行的是哪个方法就看我们是哪个对象实例调用这个方法. 4)父类的引用不能调用子类特有的方法和属性,需要强转成子类. 5)组合类(即类里面包含其他类对象)的使用,注意在使用组合类时我们要重写系统的初始化方法,给组合类中的类对象实例化,这样以后的成员方法才可以直接操作成员对象. 6)在多态中我们可以使用@clas

IOS 阶段学习第22天笔记(JSON数据格式)

IOS学习(OC语言)知识点整理 一.JSON数据格式 1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典:对象的序列:[,,,,,]数组两种数据类型 2)URLWithString 将字符串网址封装成NSURL对象 例如: 1 NSString *urlStr=@"http://10.0.8.8/sns/my/user_list.php?number=20 2 &page=";//get post 3 NSURL *url=[NSURL

IOS阶段学习第17天笔记(OC中文件的操作)

IOS学习(OC语言)知识点整理 一.单例模式 1)单例是一种编程思想,一个设计模式,与语言无关在采用了单例对象的应用程序中,需要单例类自行提供实例化单例对象, 不管实例化单例对象多少次,只有一个对象存在,这个对象是全局的,能够被整个应用程序共享,访问 2)使用单例模式时使用类提供的类方法获取单例对象,尽量不要用alloc init的方法获取单例对象 3)单例类提供类方法获取单例对象时类方法一般以sharedXX/standedXX/defaultXX开头 实例代码: #import "Plan

IOS阶段学习第21天笔记(ARC内存管理-Copy-代理)

IOS学习(OC语言)知识点整理 一.OC 中的ARC内存管理 1)ARC中释放对象的内存原则:看这个对象有没有强引用指向它 2)strong:强引用,默认情况下的引用都是强引用 3) weak:弱引用__weak 4)ARC环境下:与内存相关的代码都不能使用了,如果要在ARC环境下使用MRC内存管理代码 如: [super    delloc]  选中项目找到 Build Phases 菜单下的  Compile Sources 项 选中要转换的.m文件, 双击写入此行代码:-fno-objc

IOS阶段学习第18天笔记(归档与解归档操作)

IOS学习(OC语言)知识点整理 一.归档与解归档的操作 1)归档是一个过程,将一个或多个对象存储起来,以便以后可以还原,包括将对象存入文件,以后再读取 将数据对象归档成plist文件 2)plist文件中只能存放:NSString.NSDate.NSNumber.Bool.NSData.NSArray.NSDictionary 并且NSArray和NSDictionary中只能是以上的类型 3)归档存放时数据是什么类型,读取数据时就用什么类型的数据接收. 4)归档不能直接操作自定义对象类型的数

IOS阶段学习第16天笔记(Category、NSSet、NSIndexSet的操作)

IOS学习(OC语言)知识点整理 一.NSSet.NSMutableSet集合的介绍 1)NSSet.NSMutableSet集合,元素是无序的,不能有重复的值. 2)用实例方法创建一个不可变集合对象 例如: //宏定义 #define TOBJ(n) [NSNumber numberWithInt:n] NSSet *set1=[[NSSet alloc]initWithObjects:TOBJ(2),TOBJ(3),TOBJ(3),TOBJ(1),TOBJ(5), nil]; 2)用类方法创

iOS阶段学习第29天笔记(UITextField的介绍)

iOS学习(UI)知识点整理 一.关于UITextField的介绍 1)概念: UITextField 是用于接收用户输入的一个控件 2)UITextField  初始化实例代码: 1 //创建一个UItextField实例 2 UITextField *textField = [[UITextField alloc] init]; 3 textField.frame = CGRectMake(10, 40, self.view.frame.size.width - 20, 40); 4 tex

iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)

iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器  实例代码 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 //分段选择器 4 //在iOS6里,每个段的宽度会根据字数来决定 5 //iOS7以后,每个段的宽度相同,宽度取决于最长的字数 6 self.view.backgroundColor=[UIColor whiteColor]; 7 seg=[[UISegmentedControl all

IOS阶段学习第四天笔记(循环)

    IOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  两种 2.单分支 if表达式成立则执行{ }里的语句:双分支 if表达式不成立 则执行else{ }里面的语句 3.字符串的输出系统会从数组地址一直打印到字符 ‘\0’为止,如果没有正确初始化,可能会打印出数组外的信息 4.如果分支结构里面只有一条执行语句可省略外面的大括号{} . 二.开关语句 1.语句结构 :switch (参数) case