不可变字符串(NSString)与可变字符串(NSMutableString)

一,不可变字符串(NSString);
1.直接赋值

NSString *string1=@"nihao";

2.先分配内存后赋值

NSString *string2=[[NSString alloc]init];
string2=@"nihao";

3.工厂方法制造对象

NSString *string3=[NSString stringWithFormat:@"nihao"];
/*
注意:
NSString *string4=[NSString stringWithFormat:@"%@,5,%f,hi guy",@"Rick",5.5];
这种后面是能接多个格式化标识符的,在拼接字符串时也能用这种方法
*/

4.使用initWithString 与initWithFormat 方法初始化

NSString *string4=[[NSString alloc]initWithString:@"nihao"];
NSString *string5=[[NSString alloc]initWithFormat:@"nihao"];

5.使用C语言生成NSString

NSString *string5=[[NSString alloc]initWithCString:"nihao" NSUTF8StringEncoding];

6.使用已有的字符串生成新的字符串

NSString *string6=[NSString stringWithString:string5];

可变字符串(NSString)的操作

1.本地文件与网络读取字符串

//从本地文件读取字符串(contentsofFile)
NSString *path1=@"/Users/ibokan/Desktop/001/OC_04_02/OC_04_02/aaa.html";
      NSError *error;//判断是否错误
      NSString *string8=[NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:&error];
        //NSUTF8StringEncoding = 4;
        NSLog(@"string8=%@,error=%@",string8,error );


//从网络读取字符串(ContentsOfURL)
 NSURL *nrl=[NSURL URLWithString:@"http://www.baidu.com"];
        error=nil;//这样是不进行判断
        NSString *string9 = [NSString stringWithContentsOfURL:nrl encoding:4 error:&error];
        NSLog(@"%@",string9);

2.获取字符串的长度 与 字符串中某个字符

  //字符串长度length
        NSString *string@"你好";
        NSUInteger length=[string10 length];//获取字符串长度,相当于string10.length
        NSLog(@"%lu",(unsigned long)length);
运行结果是:2

//获取字符串中某个字符 (characterAtIndex)
        NSString *string11=@"abcdefg";
        char *c =[string11 characterAtIndex:0];
        //根据字符串中的位置index来获得字符串,注意字符串的索引是从0开始
        NSLog(@"%c",c);

3.字符串的比较

==  内容和指针都相等的情况下
isEqualTo  内容上相等
//通常与if语句结合

//-(NSComparisonResult)compare:(NSString *)aString options(NSStringCompareOptions)mask;
s1 compare : s2    这种比较区分大小写
s1 compare : s2 options:(条件)   这种比较可额外的加条件
//NSComparisonResult为枚举类型
//{NSOrderedAscending(左侧小于右侧),NSOrderedSame,NSOrderedDescending(左侧大于右侧)}

//NSStringCompareOptions也是枚举类型
//常用的是:NSCaseInsensitiveSearch(不区分大小写比较字符),NSLiteralSearch(完全比较,区分大小写),NSNumericSearch(比较字符个数)

4.字符串拼接

-(NSString *)stringByAppendingString:(NSString *)aString
例子:
NSString *string1=@"I Love";
NSString *string2=[string1 stringByAppendingString:@"Iphone";
这种事直接将两个字符串连接起来.

-(NSString *)stringByAppendingFormat:(NSString *)format...
例子:
NSString *string3=[string2 stringByAppendingFormat:@"%dS",5];
这种后面是按一定格式传进来的,可接多个,与stringWithFormat有点类似

5.字符串的查找与截取

查找:
-(BOOL)hasPrefix:(NSString *)string 判断字符串是否以string开头
-(BOOL)hasSuffix:(NSString *)string 判断字符串是否以string结尾
-(NSRange)rangeOfString:(NSString *)string 对字符串中间的查找

截取:
-(unichar)characterAtIndex:(NSUInteger)index 根据字符串的位置截取得到一个字符

-(NSString *)substringFromIndex:(NSUInteger)from: 从from的位置开始截取到结尾,包括from这个位置

-(NSString *)substringToIndex:(NSUInteger)to: 开头截取到to这个位置,不包括to这个位置

-(NSString *)substringWithRange:(NSRange)range: 根据某个范围截取

6.字符串的替换

-(NSString *)stringByReplaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement  
将target所有目标替换成replacement

-(NSString *)stringByReplaceCharactersInRange:(NSRange)range
将range范围内的内容替换

-(NSArray *)componentsSeparatedByString:(NSString *)separator
以separator为分隔符,将原字符串分割后放入数组中

7.大小写替换

-(NSString *)uppercaseString  将字符全改为大写
-(NSString *)lowercaseString  将字符全改为小写
-(NSString *)capitalizedcaseString 首个字符大写,其余小写

二,可变字符串(NSMutableString)
可变字符串是在原有的字符串中进行修改内容
其中,NSMutableString是NSString的子类,所以继承了NSString中一些属性

NSMutableString独有的初始化

-(id)stringWithCapacity:(unsigned long)capacity
例:
NSMUtableString *mStr=[NSMUtableString stringWithCapacity:40]
//后面40是初始化的长度,但并不局限于这个大小,字符串会根据内容而自行改变

NSMutableString对字符串内容修改

-(void)appendString:(NSString *)string  字符串末尾添加一个字符串
-(void)appendFormat:(NSString *)format 字符串末尾添加多个字符串
insertString:(NSString *)string atIndex   指定位置插入字符串
-(void)deleteCharacsInRange:(NSRange)range 删除range范围内的字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值