您的位置:首页 > 移动开发 > Objective-C

Objective-c 字符串常用函数

2015-07-20 19:53 411 查看

不可变字符串:NSString

字符串的创建

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

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


通过字面方式初始化方法创建字符串

NSString *str = @"hello World";


使用系统的便利构造器创建字符串

NSString *str = [NSString stringWithString:@"hello Word"];


注:使用系统的便利构造器和初始化方法创建字符串都能正常使用,但是编译器更倾向于字面方式初始化字符串.

字符串的索引

NSString *str = @"This is text code";


substringFromIndex:从索引位置开始,索引后面的字符.

NSLog(@"%@",[str substringFromIndex:5]);
//2015-07-20 19:01:11.983 OC05_NSString[1030:127553] is text code


substringToIndex:从字符串开始位置索引,知道索引位置结束.

NSLog(@"%@",[str substringToIndex:5]);
//2015-07-20 19:01:11.984 OC05_NSString[1030:127553] This


截取指定字符串

NSRange是一个结构体,提供了两个成员变量,一个是location的起始位置,一个是截取字符串的长度

从字符串的2号索引开始,截取4位字符.

NSString *str = @"This is text code";
NSRange range = {2,4};
NSLog(@"%@",[str substringWithRange:range]);


判断两个字符是否相等

(BOOL)isEqualToString:(NSString *)aString

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


查找字符串的前缀和后缀

NSString *str = @"Hello World";
NSString *preFix = @"He";
NSString *suffFix = @"ld";


比较是否有前缀

NSLog(@"%d",[str hasPrefix:preFix]);


比较是否有后缀

NSLog(@"%d",[str hasSuffix:suffFix]);


把字符串变成基本的数据类型

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


字符串拼接

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

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


stringByAppendingString:方法可以实现两个字符串的拼接

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


字符串大小写控制

字符串全部大写

NSString *str = @"Hello World";
NSLog(@"%@",[str uppercaseString]);


字符串全部小写

NSLog(@"%@",[str lowercaseString]);


字符串首字母大写

NSLog(@"%@",[str capitalizedString]);


字符串的比较

比较有三种结果,升序ASC 相同same值为0 降序值为1

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


字符串的替换

NSString *str = @"呵呵呵呵";
NSString *strNew = [str stringByReplacingOccurrencesOfString:@"呵" withString:@"呜"];
NSLog(@"%@",strNew);


可变字符串:NSMutableString

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

NSMutableString *str = [[NSMutableString alloc] init];
NSMutableString *str = @"Hello World";
NSMutableString *str = [[NSMutableString alloc] initWithString:@"Hello World"];
NSLog(@"%@",str);


便利构造器

NSMutableString *str = [NSMutableString stringWithString:@"Hello World"];
NSLog(@"%@",str);


插入

NSMutableString *str = [NSMutableString stringWithString:@"AAAAAAAAAAA"];
[str insertString:@"B" atIndex:3];
NSLog(@"%@",str);


字符串的替换

NSMakeRange(2,5)这个是5个换1个

[str replaceCharactersInRange:NSMakeRange(2,5) withString:@"B"];
NSLog(@"%@",str);


字符串的设置

setString是字符串的设置

[str setString:@"C"];
NSLog(@"%@",str);


字符串的拼接

appendString:字符串的拼接.

[str appendString:@"E"];
NSLog(@"%@",str);
NSString *strNew = [str stringByAppendingString:@"F"];


可变字符串在方法上一般都是没有返回值的,都是对自身的内容的修改,在访问的时候字符串已经发生了变化,但是不可变字符串会产生一个新的字符串.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: