您的位置:首页 > 其它

OC--字符串

2015-07-15 08:29 357 查看
#warning NSString

#pragma mark - 使用苹果帮助文档

//苹果每次IOS版本的升级,都会添加或更新大量API,并提供相应的参考文档,开发者很难记忆所有API,因此学会使用苹果帮助文档使开发者的一项技能

//打开文档的方法

//Xcode -> Help -> Documentation and API Reference

//文档内包含的基本信息

//Inheerits from 继承自

//Conforms to 遵循什么协议

//Framework 属于哪个框架

//AVailability 什么时候可用

//Declared in 声明在什么头文件里

//Related documents 相关文档

//Sample code 示例代码

//快速打开帮助文档

//在代码中,将鼠标停留在类名或者方法名上, option + 鼠标左键,点击Reference的超链接进入帮助文档;也可以使用command + 鼠标左键,进入头文件,查看类的接口部分

#pragma mark - Foundation框架

//Foundation框架是Cocoa编程,IOS编程的基础框架,包括:字符串,集合,日期,时间等基础类

#pragma mark - 字符串 NSString

//C语言中,字符串是由char (ASCII码)字符组成

//OC中,字符串是由unichar (Unicode)字符组成

//OC中,字符串分为可变字符串和不可变字符串

//NSString,不可变字符串,即:创建以后,内容和长度不能改变

//NSMutableString,可变字符串,即:创建以后,内容还可以修改

#pragma mark - 不可变字符串

NSString *str =
@"DuNiang";

NSInteger a = 250;

//参照printf/NSLog

//常用的高大上的方法, 场景:将其他的格式的变量转换为字符串

NSString *str1 = [NSString
stringWithFormat:@"%@%ld", str, a];

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

//求字符串的长度

NSLog(@"str1.length = %ld", str1.length);

#pragma mark - 子串 sub

//从哪

NSString *str2 = [str1
substringFromIndex:2];

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

//到哪

NSString *str3 = [str1
substringToIndex:5];

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

//指定范围

// NSRange range = NSMakeRange(2, 4);

// NSString *str4 = [str1 substringWithRange:range];

NSString *str4 = [str1
substringWithRange:NSMakeRange(2, 5)];

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

#pragma mark - 拼接 append

NSString *str5 = [str1
stringByAppendingString:@"haha"];

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

NSString *str6 = [str1
stringByAppendingFormat:@"haha%d%@", 6666,
@"lala"];

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

#pragma mark - 替换 replace

//从下标为x开始长度为y的字符串开始替换,替换的的 字符串的长度可以不与被替换的字符串相等

NSString *str7 = [str1
stringByReplacingCharactersInRange:NSMakeRange(2, 5)
withString:@"XiaoJie"];

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

//指定一个子串进行替换

NSString *str8 = [str1
stringByReplacingOccurrencesOfString:@"Niang"
withString:@"Teng"];

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

#pragma mark - 比较 compare

//判断相等 ---用布尔类型 相等输出1,不相等则输出0

BOOL ret = [str1
isEqualToString:@"DuNiang250"];

NSLog(@"ret = %d", ret);

BOOL ret0 = [str1
isEqualToString:@"xxxxx"];

NSLog(@"ret0 = %d", ret0);

//比较大小, 大则输出1, 相等输出0, 小则输出 -1;

NSInteger ret1 = [str1
compare:@"DuLiang"];

NSLog(@"ret1 = %ld", ret1);

NSInteger ret2 = [str1
compare:@"DuNiang250"];

NSLog(@"ret2 = %ld", ret2);

NSInteger ret3 = [str1
compare:@"xxx"];

NSLog(@"ret3 = %ld", ret3);

//NSOrderedDesceding 相当于 1,NSOrderedSame 相当于 0, NSOrderedAscending 相当于 -1;

if (NSOrderedDescending == [str1
compare:@"xxx"]) {

NSLog(@"66666");

} else {

NSLog(@"2222222");

}

//比较开头

BOOL ret4 = [str1
hasPrefix:@"xxx"];

NSLog(@"ret4 = %d", ret4);

//比较结尾

BOOL ret5 = [str1
hasSuffix:@"DuNiang250"];

NSLog(@"ret5 = %d", ret5);

#pragma mark - 杂货铺

//字符串类型转换为其他类型

//NSUInteger 无符号的,既没有负数,NSInteger是有符号的

//int:当使用int类型定义变量的时候,可以像写C程序一样,用int也可以用NSInteger,推荐使用NSInteger ,因为这样就不用考虑设备是32位还是64位了。

NSString *str9 =
@"6666";

NSInteger ret6 = [str9
integerValue];

NSLog(@"ret6 = %ld", ret6);

//大小写转换

//1.转小写

NSString *str10 = [str1
lowercaseString];

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

//2.转大写

NSString *str11 = [str1
uppercaseString];

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

//3.首字母转大写

NSString *str12 = [str10
capitalizedString];

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

#pragma mark - 可变字符串

//NSMutableString是NSString的子类

NSMutableString *strM = [NSMutableString
stringWithFormat:@"DuNiang"];

//插入

//[strM insertString:@"要插入的字符串" atIndex:要插入的位置];

[strM insertString:@"Love"
atIndex:2];

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

//删除

//delete 和 remove的区别

//delete是删除,东西不在任何一个区

//remove是移除,你可以将东西从A区移动到B区,但东西仍还在

//NSRange range1 = {下标,删除的字符串的长度};

[strM deleteCharactersInRange:NSMakeRange(6, 0)];

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

#pragma mark - 可变不可变注意事项

//1.不可变字符串的修改操作,本质就是得到一个新的字符串

//2.不可变字符串的修改方法以string开头,有返回值

//3.可变字符串的修改方法没有返回值,修改原字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: