NSString的基本用法

本文介绍Objective-C中字符串的创建方式及使用方法,包括常量字符串、格式化字符串的创建,字符串长度获取、截取、比较等功能,适用于iOS及Mac开发。

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

字符串创建

//常量字符串,存储在常量区(@"dsds"相同,则str,str6是同一个,地址相同)  
        NSString *str = @"dsds";  
        NSString *str6 = @"dsds";  
          
        //使用类方法创建字符串  
        NSString * string = [NSString string];  
        string = @"小白";//字符串赋值  
         
        //创建一个字符串,并且将内容设置为string  
        NSString * string1 = [NSString  stringWithString:string];  
          
        //格式化创建字符串(按照格式输出)  
        NSString * string2 = [NSString stringWithFormat:@"%@",string1];  
        NSString * string0 = [NSString stringWithFormat:@"hello %d %c",5,'A'];  
          
        //实例方法初始化(比下面两种常用)  
        NSString *string3 = [[NSString alloc]init];  
  
        //实例方法指定字符串  
        NSString *string4 = [[NSString alloc]initWithString:string3];  
          
        //实例方法创建字符串  
        NSString *string5 = [[NSString alloc]initWithFormat:@"%@",string4 ]; 

字符串获取

NSString *string6 = [NSString stringWithFormat:@"helloiphone"];  
          
        //获取字符串长度(有效字符长度,不包括'\0')  
        NSInteger len = [string6 length];  
          
//字符串截取  
        //1.从哪个索引开始截取到字符串末尾(包含索引位置)  
        NSString *str0 = [string6 substringFromIndex:4];  
          
        //2.从字符串开头截取到哪个索引(不包含索引位置)  
        NSString *str1 = [string6 substringToIndex:8];  
          
        //3.截取一定范围(从下标3开始截取7个字符)  
        NSRange range = {3,7};  
        NSString *str2 = [string6 substringWithRange:range];  
          
        /* 
         typedef struct _NSRange { 
         NSUInteger location;     //起始位置 
         NSUInteger length;       //表示长度 
         } NSRange;       
         */       

        //获取某字符串所在区间  
        NSString *string9 = @"ll";  
        NSRange rang1 = [string6 rangeOfString:string9];  
        NSRange rang2 = [string6 rangeOfString:@"pho"];  
        NSLog(@"************所在范围%@",NSStringFromRange(rang1));  
          
        if (rang2.location == NSNotFound) {  
            NSLog(@"没有这个子串");  
        }else{  
            NSLog(@"--------所在范围%@",NSStringFromRange(rang2));  
        }  
        if (rang1.length == 0) {  
            NSLog(@"没有这个子串");  
        }

字符串比较

NSString *string7 = @"ahanweilong";  
      NSString *string8 = @"shanweilong";  
      //比较地址  
      if (string7 == string8) {  
            
      }  
        
      //比较内容  
      if ([string7 isEqualToString:string8]) {  
          NSLog(@"一样的~~");  
      }else{  
          NSLog(@"不一样~~");  
      }       
        
      if ([string7 compare:string8] == NSOrderedSame) {  
          NSLog(@"相等");  
      }  
      else if ([string7 compare:string8] == NSOrderedAscending)  
      {  
          NSLog(@"升序");  
      }  
      else if ([string7 compare:string8] == NSOrderedDescending)  
      {  
          NSLog(@"降序");  
      }  
             
  //NSCaseInsensitiveSearch 忽略大小写(@“123”,@“0123”字符串比较)  
  //NSNumericSearch 用于数值类型的比较(@“123”,@“0123”转化成数值比较)  
     NSComparisonResult result = [string7 compare:string8 options:NSCaseInsensitiveSearch];  
      if (result == NSOrderedSame) {  
          NSLog(@"相等");  
      }else if (result == NSOrderedAscending){  
          NSLog(@"升序");  
      }else if (result == NSOrderedDescending){  
          NSLog(@"降序");  
      }  
  }

 

NString转NSURL时,如果string是路径

NSURL *url = [[NSURL alloc] initFileURLWithPath:filePath];

转载于:https://www.cnblogs.com/naruto-2/p/5151135.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值