黑马程序员 --- NSString和NSMutableString的用法

NSString和NSMutableString的用法


字符串是程序设计最常用的数据类型之一。一个NSString对象就代表一个字符串,一般称NSString为字符串类,有别于普通的string为数据类型,NSString是NSObject(Foundation的基础对象)的子类,所以具有NSObject的所有特性。

 NSString 初始化:有如下两种方式

最直接的方式:创建常量字符串,注意使用“@“符号,下面三个都分布在常量区

NSString *str = @”abc”;  
NSString *str2 = [NSString stringWithString:@”%@”,@”jack”];
NSString *str3 = [[NSString alloc] initWithString:@”My age id %d”,10];

格式化的方式:  // 这种方式存储在内存的堆区(地址不一样)
NSString *str4 = [NSString stringWithFormat:@”%@”,@”jack”];
NSString *str5 = [[NSString alloc] initWithFormat:@”My age id %d”,10];

下面介绍NSString的用法:

读文件操作

NSString *path = [[NSBundlemainBundle] pathForResource:@"astring.text"ofType:nil];
NSString *astring = [[NSString alloc] initWithContentsOfFile:path];
NSLog(@"astring:%@",astring);

写文件操作

NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
NSLog(@"astring:%@",astring); 
NSString *path = @"astring.text";    
[astring writeToFile: path atomically: YES];


字符串内容比较

<span style="font-size:14px;">BOOL flag = [str1 isEqualToString: str2] //只是比较内容是否相等,不比较地址
if(flag)
{
NSLog(@"两个字符串相等");
}</span>

字符串加上分配区域比较

两个字符串比较的不仅内容还有内容在那个内存块分配的。compare:的返回类型是称为NSComparisonResult的Cocoa的枚举数据类型,它有三个可能的值:NSOrderedAscending,NSOrderedSame,NSOrderedDescending(它们只是在基础框架中定义的常数,分别等于整数-1,0,1)。

BOOL result = [string1 compare: string2] == NSOrderedAscending;


字符串查询子字符串

NSRange range = [string1 rangeOfString:string2];// range是个结构体还有location和length两个成员
int location = range.location; // 返回字符串在父字符串中的位置
int length = range.length; //返回字符串的长度


字符串截取、分解和整合:

NSString *a = @"1.2.30";
NSString *b = [a substringWithRange:NSMakeRange(4,2)];  //字符串的截取
NSString *text = @"400-1234-56789";  
NSArray *parts = [text componentsSeparatedByString:@"-"]; //字符串的分解
NSArray *array = @[@"400",@"1234",@"56789"];
NSString * part = [array componentsJoinedByString:@"-"]; //以指定字符串为连接符将数组拼接成字符串


NSMutableString跟NSString 的区别在于它初始化后还能往字符串中添加其他的字符串,其他的用法都一样。

NSMutableString初始化:

<span style="font-size:18px;">NSMutableString * str = [[NSMutableString alloc] init];      
[str appendString:@"aaa"];   //添加普通的字符串 </span>

 

添加字符串:  

<span style="font-size:18px;">[str appendFormat:@"我的名字:%@ ",@"justcoding"]; 
[str appendString:@"1"];// 在末位附加字符串nsstring
[str insertString @"2" atIndex:1];// 以索引i为起点位置插入nsstring 
//索引i是从0开始的</span>

删除字符串:  

[str deleteCharactersInRange:<span style="font-family: Arial; font-size: 14px; line-height: 26px;">NS</span><span class="s10" style="font-family: Arial; font-size: 14px; line-height: 26px;">M</span><span style="font-family: Arial; font-size: 14px; line-height: 26px;">akeR</span><span class="s9" style="font-family: Arial; font-size: 14px; line-height: 26px;">ange(1,</span><span style="font-family: Arial; font-size: 14px; line-height: 26px;"> 2)</span>];// 删除置顶的range中的字符

替换字符串:

[str replaceCharactersInRange:<span style="font-family: Arial; font-size: 14px; line-height: 26px;">NS</span><span class="s10" style="font-family: Arial; font-size: 14px; line-height: 26px;">M</span><span style="font-family: Arial; font-size: 14px; line-height: 26px;">akeR</span><span class="s9" style="font-family: Arial; font-size: 14px; line-height: 26px;">ange(0,</span><span style="font-family: Arial; font-size: 14px; line-height: 26px;"> 2)</span><span style="font-family: Arial, Helvetica, sans-serif;"> WithString:@"23"];// 使用nstring 替换range指定的字符</span>

NSString 字符串常用方法:

+(id)string // 创建一个新的字符串

+(id)stringWithString:nsstring // 创建一个新字符串,并将其设置为nsstring变量值

+(NSString *) stringWithFormat:format, arg, arg1,arg2... 格式化一个字符串到变量

-(id)stringByAppendingFormat:string  // 组合字符串并格式化

-(id)initWithString:nsstring // 将新分配的字符串设置为nsstring

-(id)initWithContentsOfFile:path encoding:enc error:err // 返回一个文件里的字符串

-(id)initWithContentsOfURL:url, encoding:enc error:err // 返回一个url里的字符串,url参数,编码参数,错误信息

-(NSUInteger)length // 返回字符串的长度

-(unichar) characterAtIndex:i // 返回索引为i的unicode字符

-(NSString *)substringFormIndex:i // 返回从i开始到结尾的字符串

-(NSString *) substringWithRange:range // 根据指定的范围返回字符串

-(NSString *) substringToIndex:i // 从开始一直到索引i的字符串

-(NSComparator *) caseInsensitiveCompare:nsstring // 比较两个字符串,忽略大小写

-(NSComparator *)compare:nsstring // 比较两个字符串

-(BOOL)hasPrefix:Nsstring // 测试字符串是否nsstring开始

-(BOOL)hasSubfix:nsstring // 测试字符串是否以nsstring结尾

-(BOOL)isEqualToString:nsstring // 测试两个字符串是否相等

-(NSString *)capializedString // 返回每个单词的首字母大写,其他字母小写

-(NSString *) uppercaseString //转大写

-(NSString *) lowercaseString // 转小写

-(const *char *) UTF8String // 返回utf8 C字符串样式

-(double) doubleValue // 转为double的字符串

-(float) floatValue // 返回字符串表示的双精度点数

-(NSInteger)integerValue // 返回字符串的NSinteger整数标识

-(int)intValue // 返回转换为整数的字符串

 

NSMutableString 常用方法 

+(id)stringWithCapacity:size // 创建一个初始化包含size的字符串

-(id)intiWithCapacity:size // 使用初始容量为size的字符串来初始化字符串

-(void)setString:nsstring  // 将字符串设置为nsstring

-(void)appendString:nsstring // 在末位附加字符串nsstring

-(void)deleteCharactersInRange:range // 删除置顶的range中的字符

-(void)insertString nstring atIndex:i // 以索引i为七点位置插入nsstring 

-(void)replaceCharactersInRange:range WithString:nsstring  // 使用nstring 替换range指定的字符

-(void)replaceOccurrencesofString:nsstring withString:nstring2 options:opts range:range // 在置顶范围内用range中的nsstring2 替换所有的nsstring 1


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值