NSString与NSMutableString完整解释

本文详细介绍了NSString和NSMutableString的基本操作方法,包括字符串创建、拼接、查询长度、替换及比较等内容,并通过示例展示了如何使用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建字符串

NSString 的stringWithFormat:方法就是这样通过格式字符串和参数来创建的

+(id)stringWithFormat:(NSString *)format,...;

eg:NSString *height;

height = [NSString stringWithFormat:@"your height is %d feet,%d inches",5,11];

得到的字符串是“your height is 5 feet,11 inches”


如果你在声明方法时添加了加号,就是把这个方法定义为类方法,这属于类对象,通常用于创建新的实例,我们称这种用来创建新对象的类方法的工厂方法。

stringWithFormat:就是一个工厂方法,可以根据你提供的参数创建新对象,用stringWithFormat来创建字符串比创建空字符串然后生成所有元素要容易很多。

关于大小

NSString 的另一个好用的方法(实例方法)是length ,它返回的是字符串中的字符个数。

-(NSString)length 也可以这样使用:NSString length = [height length];

也可以在表达式中这样使用:

if([height length]>35){

NSLog(@"hello world");

}

想要知道两个字符串时候相等时,比如给字符串排序时,NSString为你提供了几个比较的方法

isEqualToString: 可以用来比较接收方(receiver,接收消息的对象)和作为参数传递过来的字符串。

isEqualToString: 返回的是BOOL值,用来反馈两个字符串是否相同


//不可变字符串NSString

//求字符串长度

eg:NSString *lenStr = @"hello";

     NSInteger len = [lenStr length];

     NSLog(@"lenStr length = %ld",len);

//获取字符串中的某一个类型

char c = [lenStr characterAtIndex:3];

NSLog(@"c = %c",c);

//字符串拼接

NSString *appstr = @"hello";

NSString *appstr1 = [appstr stringByAppendingString :@"world"];

NSLog(@"appstr1 = %@",appstr1);

//获取字符串

NSString *appStr = @"hello 1883";

//从N下标开始到结束(包括n下标)

NSString *appStr1 = [appStr subStringFromIndex:6];

//从N下标开始到结束 (不包括n下标)

NSString *appStr2 = [appStr subStringToIndex:2];

//取范围内的字符串,从location 开始 取length个字符

NSRange range = {5,2};

NSString *subStr3 = [appStr subStringFromIndex:2];

//比较两个字符串的大小 ,返回值为yes&no 为BOOL值

NSString *str1 = @"iphone";

NSString *Str2 = @"ipad";

NSIntager result = [str1 compare: str2 ];//此函数返回的是BOOL值 

//比较两个字符串时候相等

BOOL flag = [str1 isEqualTostring:str2];//返回值为BOOL值

//判断是否有前缀

flag = [str hasPrefix:@"www."];

//判断是否有后缀

flag = [str hasSuffix:@".con"];

//将所有字母大写

NSString *uppStr = [appStr uppercaseString]; 

//将所有字母小写

NSString *uppStr = [appStr lowercaseString];

//将首字母大写

NSString *uppStr = [appStr capitalizedString];


//可变字符串NSMutableString

不可变字符串继承字可变字符串 ,不可变字符串的所有方法,可变字符串都可以使用

//创建一个可变字符串,设置为空字符串,预留N个字符的空间;

NSMutableString *mInitStr = [[NSMutableString alloc]initWithCapacity:2];

//使用父类初始化的方法

mInitStr = [[NSMutableString alloc]init];

NSMutableString *mTestStr = [NSMutableString stringWithString:@"hello"];

//拼接

[mTestStr appendString:@"你好"];

[mTestStr appendString:@"  %d person",65];

//删除

NSRange rang1 = {12,4};

[mTestStr deleteCharactersInRange:rang1];

//替换

NSRange rang2 = {5,2};

[mTestStr replaceCharactersInRange:rang2 withString:@"海城"];

//重置字符串内容

[mTesStr setString:@"海城"];

//把字符串换成数字

  NSString *numStr =@"123";

        NSInteger num = [numStrintegerValue];

        NSLog(@"num = %ld",num);

        NSString *numStr1 = [NSStringstringWithFormat:@"%ld",num];

        NSLog(@"numStr1 = %@",numStr1);


那么现在就试试看这个小程序,你能不能看懂:

//创建可变字符串

       NSMutableString *http = [[NSMutableStringalloc]

            initWithString:@"http://www.lanou3g.com/icon.png"];

        

        //判断是否以PNG结尾

       if ([httphasSuffix:@"png"]) {

            // 则将png替换成jpg

            //求得png起始位置

            NSInteger location = http.length -3 ;

            //创建范围

            NSRange pngRange = {location,3};

            [http replaceCharactersInRange:pngRangewithString:@"jpg"];

        }else{

           //不是则拼接 .jpg

            [httpappendString:@".jpg"];

        

        }

        NSLog(@"http:%@",http);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值