objective-c - 基础篇 - NSString与NSMutableString

 

 NSStringNSMuatbleString
可变静态  动态
普通创建@“hello”
对象创建[[NSString alloc] initwithString:@"hello1"][[NSMutableString alloc] initwithString:@"hello1"]
占位符创建 [NSString alloc]initwithFormat:@"%@",string1]; [[NSMutableString alloc]initwithFormat:@"%@",string1];]
类创建 [NSString stringwithstring:@"hello"];      [NSMutableString stringwithstring:@"hello"];

一、NSString 对象

用途:处理字符串的常用类

#import <Foundation/Foundation.h>

int main(int argc, const charcahr * argv[]){

@autoreleasepool{

//NSString是不可变字符串

//1 --  静态普通方式创建字符串

NSString * string1 = @"hello";

NSLog(@"%@",string1);

//2 -- 静态对象形式创建字符串

NSString * string2 = [[NSString alloc] initwithString:@"hello1"];

NSLog(@"%@",string1);

//3 -- 静态实现字符串拼接形式

NSString * string3 = [NSString alloc]initwithFormat:@"hello %@", string1];

//4 -- 静态类形式创建字符串

NSString * string4 = [NSString stringwithstring:@"hello"];

//5 -- 字符串的比较--isEqualToString

//比较字符串的值

NSString * string5 = @"abcd";

NSString * string52 = @"1234";

BOOL isEquals = [string5 isEqualToString:string52];

if(isEquals){

NSLog("是");

}else{

NSLog("否 ");

}

//6 -- 字符串内存分配--栈中常量区的分配

//这里的内存做了优化,string6 和string62 是相同的,因为在栈中的常量区中分配,同时也是局部变量。

NSString * string6 = @"abc";

NSString * string62 = @"abc";

//这里的内存做了优化,string64 和string63 是相同的,是在栈中分配内存

NSString * string63 = [NSString alloc]initwithString:@"abc"];

NSString * string64 = [NSString alloc]initwithString:@"abc"];

//下面的string65和string66是在堆中分配内存的,所以string65和string66是不相同的

NSString * string65 =[[NSString alloc]initwithFormat:@"abc%@",@"def"];

NSString * string66 =[[NSString alloc]initwithFormat:@"abc%@",@"def"];


//7 -- 大小写是否相等的判断 -- caseInsensitiveCompare方法

NSString * string7 = @"zhangsan";

NSString * string72 = @"ZHANGSAN";

NSComparisonResult result = [string7 caseInsensitiveCompare:string76];

if(result == NSOrderedSame){

}else{

}


//8 -- 两个字符串的大小比较 -- compare方法

result =[string7 compare:string72];

if(result == NSOrderedAScending){

//升序

}else{

//降序

}


//9 -- 取字符串长度值 -- length方法

NSString * string9 = @"abc";

NSInteger len = [string9 lengh];


//10 -- 转大小写和首字母大写 -- uppercaseString/lowercaseString

NSString * string10 = @"abc";

NSString * string102 = [string10 uppercaseString];   //大写

NSString * string103 = [string102 lowercaseString]; //小写

NSString  * string 104 = [string103 capitalizedString];


//11 -- 数值转化方法 --TypeXXXValue

NSString * string11 = @"22";

NSInteger value = [String11 intValue]; 

NSString *  string112 = @"1";

BOOL values = [String112 boolValue];


//12 --字符串截取 -- subStringToIndex / subStringFromIndex / subStringwithRange  

//     --注意--》截取是左闭右开,也就是下面的包不包括3

NSString * string12 = @"abcdefg";

//从开始位置截取到下标为3的字符串(不包括3)

NSString * string122 = [string12 subStringToIndex:3];

//从指定的index开始就到尾部(包括3)

NSString * string123 = [string12 subStringFromIndex:3];

//截取一个范围 -- 需要使用到Range

NSRange range = {1,3};

string124 =[string12 subStringwithRange:range];


//13 -- 字符串的追加 -- stringByAppendingString/ stringByAppendFormat

NSString * string13 = @"objective";

NSString *  string132 = [string13 stringByAppendingString:@"swift"];

NSString * string134 = [string13 stringByAppendingFormat:@"%@",@"swift"];


//14 -- 字符串的查找 -- rangeofString

NSString * string14 = @"abcdefg";

NSRange range = [string14 rangeofString: @"d"]; // 返回一个范围

if(range.location == NSNotFound){

NSLog("没找到");

}else{

NSLog("找到");

}


//15 -- 提取指定未知的字符串 -- characterAtIndex

NSString * string15 = @"abcdefg";

NSString * string152 = [string15 charcterAtIndex:3];


二、NSMuatbleSting对象

#import <Foundation/Foundation.h>

int main(int argc,const charchar * argv[]){

@autoreleasepool{

//NSMutableString是动态创建

//因为是动态创建,所以不能使用 NSMutableString * string = @"hello";这种形式,因为这种形式的值是在常量池中,不可变。

//1 --   动态对象形式创建字符串

NSMutableString * string1 = [[NSMutableString alloc] initwithString:@"hello1"];

NSLog(@"%@",string1);

//2 -- 动态实现字符串拼接形式

NSMutableString * string2 = [NSMutableString alloc]initwithFormat:@"hello %@", string1];

//3 -- 动态类形式创建字符串

NSMutableString * string3 = [NSMutableString stringwithstring:@"hello"];

//4 -- 插入字符串 -- inserString方法

//在源字符串中指定的index中插入字符串,不会产生新的对象

[string3 insertString:@"可变"atIndex:0];

//5 -- 追加字符串 -- appendString方法

//不会产生新的对象

[string3 appendString:@"可变"];

//6 -- 删除字符串 -- deleteCharacterInRange方法

NSMutableString * string6 = [NSMutableString stringwithstring:@"hello"];

 NSRange range = {1,3};

[string6 deletecharacterInRange:range];

//7 -- 替换字符串 -- replaceCharactersInRange方法

NSMutableString * string7 = [NSMutableString stringwithstring :@"hello"];

NSRange range = [string7 rangeofString:@"11"];

[string7 replaceCharacterInRange:ranges withString:@"ee"];

}

}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值