【学习ios之路:Objective-C】NSString和NSMutableString

1.NSString

     *   字符串常用方法

     *   字符串创建方法(最常用)
     *   字符串追加方法
     *   求子串 以及字符串中取某个字符
     *   字符替换
     *   字符串与其他转换(经常用)
     *   字符串改变大小写

     *   字符串比较方法(经常用)

例如:

1).创建一个字符串对象方法:

	
  
  NSstring * str1 = @"hello"; //1.直接赋值
  //2.通过initWithString
  NSString * str = [[NSString alloc]initWithString:@"hello world!"];

 //3.initWithUTF8String把C的字符串转化为OC的字符串
  NSString * str_1 = [[NSString alloc]initWithUTF8String:"hello world"]; int a = 123;

 //用格式化字符串初始化
  NSString * str_3 = [[NSString alloc]initWithFormat:@"a=%d%s%@", a,"abcd", @"efg"]; 

 /可完成字符串的拼接以及完成C的字符串与OC的字符串的转化.
  NSString * str1 = [NSString stringWithString:@"hello world"]; NSString * str2=[NSString stringWithUTF8String:"hello world"];
  NSString * str3 = [NSString stringWithFormat:@"%s","hello world"];

 
2). 字符串的转化

 
 NSString * str = @"hello";
 const char *p = [str UTF8String];将OC字符串转化为C的字符串
 NSString *str1 = @"123";
 int a = [str intValue];//将数字串转化成整型数据
 [str floatValue];//将数字串转化成float型
 [str doubleValue];//将数字串转化成double型


3). 常用的字符串操作

  

   //求字符串长度
    NSLog(@"%ld",[str1 length]);
   //获取字符串中某个位置的字符
    NSLog(@"%c", [str1 characterAtIndex:1]);


  //比较两个字符串是否相等,相等返回YES(1),不相等返回NO(0)
  BOOL ret = [str1 isEqualTo:str2];


  //比较两个字符串的大小,str1大于 返回1 相等返回0 小于返回-1
  long ret1 = [str1 compare:str2];

  //不区分大小写比较字符串大小</span>
  long ret2 = [str1 caseInsensitiveCompare:str2];

  //将字符串中的所有小写字符转换成大写 不改变原来的字符串
  NSString* ptr = [str2 uppercaseString];

   //将字符串中的所有大写字符转换成小写 不改变原来的字符串
   ptr = [str1 lowercaseString];

    //将字符串中出现的第一个字母转换成大写,其余字母小写
   ptr = [str3 capitalizedString]; 



        
  //字符串连接
  NSString *result1 = [num1 stringByAppendingFormat:@" %@",num2];

  //替换字符串a,用sdf替换
  stringByReplacingOccurrencesOfString:@"a" withString@:"sdf";

  //将字符串分割,保存在数组中
  NSString *string = @"asdfadf fd sdf sdf sf";
  NSArray *array = [string componentsSeparatedByString:@"\n"];

   //获取字符串的子串,以及字符串中的某个字符. 
  NSString *all = @"hheehhe is very important!";
  NSRange range = NSMakeRange(8,2);//从第八个开始第二个      

   //声明一个变量来指向获取的子串对象.  
   NSString *subString = [all substringWithRange:range];
   NSLog(@"%@",subString);//is  

  //声明一个变量用来指向获取的ls后面的字符串
  NSString *subRightString = [all substringFromIndex:range.location +range.length + 1]; 
  NSLog(@"%@",subRightString);//!very impirtant

  //声明一个变量用来指向获取的ls前面的的字符串
  NSString *string = [all substringToIndex:range.location];
  NSLog(@"%@",string);//hheehhe

                                                      
 
  //查找子串,找不到返回NSNotFound 找到返回location和length
  NSRangerange = [str4 rangeOfString:@"wr"];
  if (range.location != NSNotFound) 
  { NSLog(@"%ld %ld",range.location, range.length); }

  
   NSString* str5 = @"helloworld";
  //字符串抽取 从下标0开始到4 不包括4
  NSString* ptr1 = [str5 substringToIndex:4];
  //从下标5开始抽取到字符串结束 包括5  
  NSString* ptr2 = [str5 substringFromIndex:5];
  //NSRange range = NSMakeRange(4,3);
  //获取长度为3,从下标为4的字串
  NSString* ptr3 = [str5 substringWithRange:range];
 NSString* ptr4 = [str5 substringWithRange:NSMakeRange(4,3)];

 
 
  NSString* str = @"www.1000phone.com";
  //判断字符串是否是www开头
  BOOL ret = [str hasPrefix:@"www"];

  NSString* str1 = @"1.txt";
 //判断字符串是否是.txt结尾
  BOOL ret1 = [str hasSuffix:@".txt"];

  //NSMutableString可变字符串(动态增加和减少的)
  //继承于NSString可以使用NSString的所有方法
  //将不可变字符串转化为可变的字符串.
  NSMutableString* str = [[NSMutableStringalloc]initWithString:@"hello"];

  //在指定下标(不越界)位置插入NSString类型字符串
  [str insertString:@"123"atIndex:1];

  //在字符串末尾追加字符串.
  [str appendString:@"123"]; 

  //从0下标开始删除2个字节
  [str deleteCharactersInRange:NSMakeRange(0, 2)];
 
  //对字符串赋值,即修改可变字符串
  [str setString:@"hehe"];

  //将指定下标长度位置的字符串替换成IOS
  [str replaceCharactersInRange:NSMakeRange(3, 1) withString:@"ios"];


 
 

注:可变字符串与不可变字符串区别

1.可变字符串:能够修改,删除,添加字符串 ,

2.不可变:不能修改,删除,添加字符串

3.可变字符串是不可变字符串的子类,继承父类的所有方法.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值