黑马程序员-Foundation框架之NSString

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——


NSString对象是非常重要的一个对象,也是最基础的一个对象,是用来处理字符串的常用类

1.使用方法:


#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //NSString是不可变字符串,后面还会降到可变字符串
        
        //1.--------------字符串的创建方式
        NSString *string1 = @"hello";
        NSLog(@"%@",string1);
        //和上面的方式是等价的
        string1 = [[NSString alloc] initWithString:@"hello1"];
        NSLog(@"%@",string1);
        //占位符,可以实现拼接字符串
        //[string1 stringByAppendingFormat:<#(NSString *), ...#>]这个方法也是可以实现字符串拼接的
        string1 = [[NSString alloc] initWithFormat:@"hello %@",string1];
        NSLog(@"%@",string1);
        //使用类方法创建字符串
        string1 = [NSString stringWithString:@"hello1"];
        
        
        //2.--------------字符串的比较isEqualToString
        //比较字符串的值
        NSString *string2 = @"abcd";
        NSString *string3 = @"8888";
        BOOL isEquals = [string2 isEqualToString:string3];
        if(isEquals){
        }else{
        }
        
        NSString *string8 = @"abc";
        NSString *string9 = @"abc";
        //这里内存做了优化,这里string8和string9是相同的,"abc"在常量区中分配的
        //string8和string9是局部变量,在栈中分配内存的
        if(string8 == string9){
            NSLog(@"string8 == string9");
        }else{
            NSLog(@"string8 != string9");
        }
        
        //下面的string11和string12还是在栈中分配内存的
        NSString *string11 = [[NSString alloc] initWithString:@"abc"];
        NSString *string12 = [[NSString alloc] initWithString:@"abc"];
        if(string11 == string12){
            NSLog(@"string11 == string12");
        }else{
            NSLog(@"string11 != string12");
        }
        
        //下面的string13和string14是在堆中分配内存的,所以string13和string14不相等了
        NSString *string13 = [[NSString alloc] initWithFormat:@"abc%@",@"def"];
        NSString *string14 = [[NSString alloc] initWithFormat:@"abc%@",@"def"];
        if(string13 == string14){
            NSLog(@"string13 == string14");
        }else{
            NSLog(@"string13 != string14");
        }
        
        //3.---------------------caseInsensitiveCompare方法
        //区分大小写判断是否相等
        NSString *string15 = @"zhangsan";
        NSString *string16 = @"ZAHNGSAN";
        NSComparisonResult result = [string15 caseInsensitiveCompare:string16];
        if(result == NSOrderedSame){
        }else{
        }
        
        
        //4.---------------------compare方法
        //比较两个字符串的大小
        result = [string15 compare:string16];
        if(result == NSOrderedAscending){
            //升序
        }else if(result == NSOrderedDescending){
            //降序
        }
        
        
        //5.---------------------length方法
        NSString *string17 = @"abc";
        NSInteger len = [string17 length];
        NSLog(@"len=%ld",len);
        
        
        //6.---------------------uppercaseString/lowercaseString
        //转成大写
        NSString *string18 = @"aEc";
        NSString *string19 = [string18 uppercaseString];
        string19 = [string18 lowercaseString];
        //首字符大写,其他的变成小写
        [string18 capitalizedString];
        
        
        //7.---------------------TypeXXXValue
        //数值转化方法
        NSString *string20 = @"3.14";
        float value = [string20 floatValue];
        string20 = @"1";
        BOOL values = [string20 boolValue];
        
        
        //8.---------------------subStringToIndex/subStringFromIndex/subStringWithRange
        //字符串的截取
        NSString *string21 = @"abcdefg";
        //从开始位置截取到下标为3的字串(不包括3)
        NSString *stringnews = [string21 substringToIndex:3];
        //从哪个index开始截取到尾部(包括3)
        stringnews = [string21 substringFromIndex:3];
        //截取1~(3+1)部分的字串
        NSRange range = {1,3};
        stringnews = [string21 substringWithRange:range];
        
        
        //9.----------------------stringByAppendingString/stringByAppendingFormat
        //字符串的追加
        NSString *string22 = @"Android";
        NSString *stringnew = [string22 stringByAppendingString:@"IOS"];
        stringnew = [string22 stringByAppendingFormat:@"%@",@"IOS"];
        
        
        //10.---------------------rangeOfString
        //字符串的查找
        NSString *string23 = @"www.iphonetrain.com/ios.html";
        NSRange rang = [string23 rangeOfString:@"ios"];//返回一个范围
        if(rang.location == NSNotFound){
            //没找到
        }else{
            //找到了
        }
        
        //11.----------------------characterAtIndex
        //取出字符串中指定的char
        NSString *string24 = @"abcdef";
        unichar c = [string24 characterAtIndex:3];
    
        
    }
    return 0;
}


2.创建方法

[objc]  view plain c
  1. //1.--------------字符串的创建方式  
  2. NSString *string1 = @"hello";  
  3. NSLog(@"%@",string1);  
  4. //和上面的方式是等价的  
  5. string1 = [[NSString alloc] initWithString:@"hello1"];  
  6. NSLog(@"%@",string1);  
  7. //占位符,可以实现拼接字符串  
  8. //[string1 stringByAppendingFormat:<#(NSString *), ...#>]这个方法也是可以实现字符串拼接的  
  9. string1 = [[NSString alloc] initWithFormat:@"hello %@",string1];  
  10. NSLog(@"%@",string1);  
  11. //使用类方法创建字符串  
  12. string1 = [NSString stringWithString:@"hello1"];  
这里用了四种方式去创建一个字符串

常用的方式一般是第一种

第二种是对象方法创建的

第三种是在创建字符串的时候可以实现字符串的拼接

第四种是使用类的方法创建的




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值