OC_字符串

来源:互联网 发布:扫号软件 编辑:程序博客网 时间:2024/05/17 22:16

NSString 不可变字符串

字面量

NSString *str = @"李牧燃天天都要开心";

通过alloc和init创建的一个空字符串

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

初始化一个字符串

NSString *str = [[NSString alloc] initWithString:@"腾飞"];NSLog(@"%@", str);

系统提供的便利构造器的方法

NSString *str = [NSString stringWithString:@"珊珊美女"];

用便利构造器和初始化方法创建字符串对象可以,也能正常使用,但是系统还是更倾向于用字面量的方式来完成对象的创建

length字符串的长度

NSString *str = @"李牧燃是个大傻瓜";NSLog(@"%ld", str.length);

字符串的截取

NSString *str = @"nihao,wodemingzijiaolishanshan";NSLog(@"%@", [str substringFromIndex:6]);NSLog(@"%@", [str substringToIndex:5]);

NSRange 是一个结构体,提供了两个成员变量,一个是location起始位置,还有一个是长度

NSString *str = @"nihao,wodemingzijiaolishanshan";NSRange  range = {3, 7};NSLog(@"%@", [str substringWithRange:range]);NSLog(@"%@", [str substringWithRange:NSMakeRange(3, 7)]);

判断两个字符串内容是否相同, 是个BOOL值,返回值是0和1

NSString *str1 = @"hello world";NSString *str2 = @"hello world";NSLog(@"%d", [str1 isEqualToString:str2]);

hasPrefix:是否有前缀 hasSuffix:是否有后缀

NSString *str = @"lishanshan";NSLog(@"%d", [str hasPrefix:@"li"]);NSLog(@"%d", [str hasSuffix:@"an"]);

把字符变成基本数据类型, 遇到不是基本类型的会直接打断

NSString * strNum = @"123s45";NSInteger num = [strNum integerValue];NSLog(@"%ld", num);

stringWithFormat: 方法可以把任意类型转换成字符串类型,可以进行拼接

CGFloat g = 3.14;NSInteger a = 100;NSString *str = [NSString stringWithFormat:@"%ld, %g, %@", a, g, @"李珊珊"];NSLog(@"%@", str);

uppercaseString:所有的字符都大写 lowercaseString:所有的字符都小写 capitalizedString:首字母大写, 其余都小写

NSString *str = @"li sHan shan";NSLog(@"%@", str.uppercaseString);NSLog(@"%@", str.lowercaseString);NSLog(@"%@", str.capitalizedString);

对应只有三个结果, 一个是ASC 升序, 其结果是:1,一个是same 相同,结果是:0,DESC 降序 结果是:1

NSString *str = @"buhao";NSString *newStr = @"buhao";NSLog(@"%ld",[str compare:newStr]);

字符串的拼接

NSString *str = @"lishanshan";NSString *str1 = @"shangshuai";NSString *newStr = [str stringByAppendingString:str1];NSLog(@"%@", newStr);

替换 并没有改变原字符串, 需要新建一个字符串用来接受

NSString *str = @"刘珊珊天天要开心";NSString *strNew = [str stringByReplacingOccurrencesOfString:@"刘" withString:@"李"];NSLog(@"%@",strNew);

NSMutableString: 可变字符串, 他是NSString的子类

使用字面量的方式创建的是不可变的字符串,只能拿不可变的指针来接受

NSMutableString * str = @"杨林";    是错误的.

可变字符串的定义
自定义初始化

NSMutableString *str = [[NSMutableString alloc] initWithString:@"腾飞"];NSLog(@"%@", str);

便利构造器

NSMutableString *str1 = [NSMutableString stringWithString:@"李牧燃"];NSLog(@"%@", str1);

插入 也可用来拼接

NSMutableString *str = [NSMutableString stringWithString:@"nihao, wo jiao shangshuai"];[str insertString:@"李牧燃" atIndex:5];NSLog(@"%@", str);[str replaceCharactersInRange:NSMakeRange(8, 0) withString:@"大美女"];NSLog(@"%@", str);

拼接

NSMutableString *str = [[NSMutableString alloc] init];[str setString:@"不开心"];NSLog(@"%@", str);[str appendFormat:@"你们都太脏了"];NSLog(@"%@", str);

可变字符串在方法上一般都是没有返回值得,但是对自身的内容进行修改,在访问的时候字符串已经发生了变化,但是不可改变字符串会产生一个新的字符串,一般方法会返回NSString *,

数组

0C里的数组存放的一定是对象

字面量

NSArray *arr = @[@"1", @"2", @"3", @"4", @"5"];

用便利构造器的方式创建一个空数组

NSArray *arr = [NSArray array];

用便利构造器的方式创建一个数组

NSArray *arr = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", nil];for (NSInteger i = 0; i < arr.count; i++) {        NSLog(@"%@", arr[i]);}

初始化定义一个数组

NSArray *arr = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4", @"5", nil];

count: 数组里的元素个数

NSArray *arr = @[@"1", @"2", @"3", @"4", @"5"];NSLog(@"%ld", arr.count);

也是通过下标进行取值, 返回一个对象

NSLog(@"%@", [arr objectAtIndex:1]);NSLog(@"%@", arr[1]);     // 数组下标是从零开始的

containsObject 判断数组中是否包含 BOOL类型

NSArray *arr = @[@"1", @"2", @"3", @"4", @"5"];NSLog(@"%d",[arr containsObject:@"4"]);
0 0