zl程序教程

您现在的位置是:首页 >  其它

当前栏目

NSString/NSMutable字符串——韩俊强…

字符串 韩俊强 NSString
2023-09-14 08:59:37 时间

1、OC基本数据类型(简单铺垫)

// NSInteger 在64 位下相当于long,在非64位下相当于 int;

// CGFloat 在64位下相当于double 在非64位下相当于 float;

//如何使用API文档学习系统类库中类

//help --》Documentation and API reference

//快捷键 option + 左键 cmmand + 左键 进入类的头文件(严重警告:进系统头文件之后,退出时一定要按几次 cmmand + z),看系统头文件适合已经对这个类有很大了解的学生

=========================================================

3、// NSString 是一个字符串类,而且是一个不可变的字符串类,继承自NSObject ,用NSString创建的字符对象,一经创建就不能修改;

//类簇:将一些私有的子类组合在一起形成一个公共的抽象的超类,那么这个超类就是类簇;

//创建一个字符串对象

char *s = "lanou";

NSLog(@"%s",s);

//oc中创建字符串

NSString *str = @"lanou";//快速创建字符串的方法

NSLog(@"%@",str);

//创建空字符串

NSString *str1 = [[NSString alloc]init];

NSLog(@"%@ %p ",str1,str1);

str1 = @"年后";//这种改变只是指针的重指向

NSLog(@"%@ %p ",str1,str1);

NSString *str2 = [NSString string];

NSLog(@"==%@",str2);

//创建不可变空字符串是没有任何意义的

//格式化创建不可变字符串对象

NSLog(@"lanou");

NSLog(@"lanou%@",@"i love you");

//我 拼接上 爱凤姐

NSLog(@"我%@",@"爱凤姐");

NSString *str3 = [[NSString alloc]initWithFormat:@"%@ %@",@"lanou",@"i love you"];

NSLog(@"%@",str3);

NSString *str4 = [[NSString alloc]initWithFormat:@"我%@",@"爱凤姐" ];

NSLog(@"%@",str4);

例子:字符串:@"优衣库试衣间" ,@"趣事多"

NSString *str6 =@"优衣库试衣间";

NSString *str7 = @"趣事多";

NSString *str5 = [[NSString alloc]initWithFormat:@"%@%@",str6,str7];

NSLog(@"%@",str5);

4、//遍历构造器格式化创建字符串方法

NSString *str8 = [NSString stringWithFormat:@"我在家里洗衣覅,%@",@"你在优衣库买衣服"];

NSLog(@"%@",str8);

//创建字符串的另一种方式(现在已经不用了);

NSString *str9 = [[NSString alloc]initWithString:@"我在蓝欧37班"];

NSString *str10 = [NSString stringWithString:@"靠 ,我也在蓝欧37班"];

NSLog(@"%@",str10);

例子:

// ============================================

5、 //将c语言字符串转换为oc字符串比如:"iOS" @"ios"

NSString *str11 = [[NSString alloc]initWithUTF8String:"ios"];

NSLog(@"%@",str11);

NSString *str12 = [NSString stringWithUTF8String:"ios"];

NSLog(@"%@",str12);

6、//头文件初始化对象方法

//将文件中的字符串内容读入到字符串对象中

//第一个参数:文件的路径 第二个参数:编码格式 第三个参数: 如果出错了返回值存放的位置

//初始化方法

NSString *str13 = [[NSString alloc]initWithContentsOfFile: @"/Users/laouhn/Desktop/37-Product/Lesson/OC/LessonNSString-04/Lesson-04/han.txt"encoding:NSUTF8StringEncoding error:nil];

NSLog(@"%@",str13);

//遍历构造器方法

NSString *str14 = [NSString stringWithContentsOfFile:@"/Users/laouhn/Desktop/37-Product/Lesson/OC/LessonNSString-04/Lesson-04/han.txt" encoding:NSUTF8StringEncoding error:nil];

NSLog(@"%@",str14);

// ==========================================

7、 //操作字符串的方法

//计算字符串长度的方法

NSString *ss = @"lanou3g";

NSUInteger len = [ss length];//无符号长整形

NSLog(@"%lu",len);

一个中文占三个字节

NSString *ss2 = @"翔哥 今天晚上区如家吧?";

NSLog(@"%lu",ss2.length);

8、//返回字符串片段的方法

NSString *str15 = @"abcdefgdef";

NSRange rang = {3,3};

NSString *subString = [str15 substringWithRange:rang];

NSLog(@"%@",subString);

9、//返回字串在父串中范围

rang = [str15 rangeOfString:@"def"];

NSLog(@"loctation:%lu length : %lu",rang.location,rang.length);//不是点语法

//获取到从零位置到某个位置的字符不包含提供位置的字符

NSString *str16 = [str15 substringToIndex:4];

NSLog(@"%@",str16);

//从某个位置开始获取字符串,直到父串的结尾,包含这个停工未知的字符

NSString *str17 = [str15 substringFromIndex:4];

NSLog(@"%@",str17);

//返回格式化拼接的字符串

NSString *str20 = [str16 stringByAppendingString:str17];

NSLog(@"%@",str20);

//练习3:把@“cang”后面 拼接上@“是你们的”

NSString *cangString = @"cang";

NSString *newString = [cangString stringByAppendingFormat:@"%@,%@",@"是你们的",@"不因不均"];

NSLog(@"%@",newString);

NSString *str18 = [cangString stringByAppendingString:@"是世界的"];

NSLog(@"%@",str18);

//字符串的替换

//将目标子串从父串中用我们给定的替换掉

NSString *str19 = [str18 stringByReplacingOccurrencesOfString:@"cang" withString:@"波多结衣"];

NSLog(@"%@",str19);

例子:

NSString *str21 = @"中国北京中南海";

//判断字符串是否具有某个前缀或者后缀

BOOL isHas = [str21 hasPrefix:@"中国北京"];

NSLog(@"%@",isHas ? @"有这个前缀":@"没有这个前缀");

BOOL Has = [str21 hasSuffix:@"南海"];

NSLog(@"%@",Has ? @"有这个后缀":@"无这个后缀");

例子:

//=============================================

//比较两个字符串大小

NSString *sstr3 = @"NBa";

NSString *sstr4 = @"NBA";

NSInteger n = [sstr3 compare:sstr4];

switch (n) {

case NSOrderedAscending:

NSLog(@"%@ %@",sstr3,sstr4);

break;

case NSOrderedSame:

NSLog(@"%@ = %@",sstr3,sstr4);

break;

case NSOrderedDescending:

NSLog(@"%@ %@",sstr3,sstr4);

default:

break;

}

//不区分大小写的比较方式

n = [sstr3 caseInsensitiveCompare:sstr4];

NSLog(@"%ld",n);

//===================================================

10、 NSMutableString 是可变字符串 ,继承自Nsstring,所以Nsstring 所有的方法NSMutableString都可以调用

//这种创建字符串的形式可以提高一定的效率,如果存入的字符串小于开辟的虚拟空间长度,则直接放入,免去了开辟空间的时间,如果此时开辟的空间小于要放入字符串的长度,此时就要再开辟空间

NSMutableString *mStr = [[NSMutableString alloc]initWithCapacity:30];

//插入一个字符串

[mStr insertString:@"索宁" atIndex:0];

NSLog(@"%@",mStr);

//创建可变字符串的另一种形式

NSMutableString *mStr1 = [[NSMutableString alloc]initWithString:@"我和他有一个约会"];

NSLog(@"%@",mStr1);

//快速创建字符串,必须在后面加上 .mutableCopy

NSMutableString *mStr2 = @"我与僵尸有一个约会".mutableCopy;

NSLog(@"%@",mStr2);

11、 //可变字符串拼接

//格式化拼接

[mStr2 appendFormat:@"%@",@"在日本岛" ];

NSLog(@"%@",mStr2);

//删除某段字符串

[mStr2 appendString:@"吃着炸鸡喝着啤酒"];

NSLog(@"%@",mStr2);

NSRange rang1 = {1,8};

[mStr2 deleteCharactersInRange:rang1];

NSLog(@"-----%@",mStr2);

//=========================================================

//改可变字符串

[mStr2 replaceCharactersInRange:NSMakeRange(2, 4)withString:@"任命广场"];

NSLog(@"%@",mStr2);

//每个单词的首字母大写

NSMutableString *mStr3 = @"i am student come from DanCheng".mutableCopy;

NSString * upFirst = [mStr3 capitalizedString];

NSLog(@"%@",upFirst);

//将所有的字母都大写

NSString *upAllWord = [mStr3 uppercaseString];

NSLog(@"%@",upAllWord);

//将所有字母都小写

NSMutableString *mStr4 = @"I AM STUDENT COME FROM DANCHENG".mutableCopy;

NSString *loweAllWord = [mStr4 lowercaseString];

NSLog(@"%@",loweAllWord);

//================转载请注明出处=================





转自:http://blog.csdn.net/qq_31810357


NSString的boolValue之前有使用,但是一直没有真正了解什么时候返回YES(true)或NO(false)。其实,苹果在官方文档中已经写的很清楚,按command + control 点击boolValue进入文档就可以看到: boolValue The Boolean value of the string.