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 *)aStringNSString *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 降序值为1NSString *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"];
可变字符串在方法上一般都是没有返回值的,都是对自身的内容的修改,在访问的时候字符串已经发生了变化,但是不可变字符串会产生一个新的字符串.
相关文章推荐
- 几个简单的排序
- 将汉字转化为拼音
- object-c之通知
- 【编码风格】禅与 Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)
- 对OC的一些小概念的小的心得,希望对你有用.
- iOS中id与NSObject* 和id<NSObject>的区别
- Object-C 预定义标识符
- 内存管理(Core Foundation object和Objective - C转换)__bridge,__bridge_retained和__bridge_transfer
- Objective-C的指令
- OC类 之 NSString
- Objective-c中对象的Copy、MutableCopy、浅拷贝、深拷贝
- Online Object Tracking: A Benchmark 论文笔记(转)
- c#怎样将object转换过程int型
- AndroidJNI.SetObjectField 设置对象域
- SWFObject基本用法实例分析
- ProtocolBuffer for Objective-C 运行环境配置(真正测试过的3.0版本编译)
- AndroidJNI.SetObjectField 设置对象域
- error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)---解决办法
- makeObjectsPerformSelector: 方法的用法
- C/C++/Objective-C经典书籍推荐