A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yushimin763 中级黑马   /  2015-8-13 20:35  /  719 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

字符串对象
   在OC中,提供了两个操作NSString类(不可变字符串)和NSMutableString类(可变字符串)。
一、NSString类
  (1)初始化
   使用字符串常量直接初始化一个NSString对象
   NSString * s1 = @"welcome to China";
   使用NSString类提供的方法对NSString对象进行初始化
   NSString * s2 = [NSString string];
   NSString * s3 = [[NSString alloc] initWithFormat:@"China have been %d years of history", year];
   NSString * s4 = [NSString stringWithFormat:@"China have been %d years of history", year];
  (2)C和OC字符串的互转
   C字符串转OC字符串
  NSString * s1 = [[NSString alloc] initWithUTF8String:"jack"];
   OC字符串转C字符串
  char * s2 = [s1 UTF8String];
   (3)字符串的常用操作
   获取字符串的长度
   NSUInteger Count = [s1 length];
   获取当前位置字符串的字符(遍历字符串)
   for (int i = 0; i < count; i ){
     char c = [s1 characterAtIndex:i];
     NSlog(@"字符串第%d位为%c", i ,c);
}

  字符串全部转化为大写
  [s1 uppercaseString]
  字符串全部转化为小写
  [s1 lowercaseString]
  转化为每个词首字母大写
  [s1 capitalizedString]

  字符串完全相等比较
  [s1 isEqualToString: s2]
  判断一个字符串是否以另一个字符串开头
  [s1 hasPrefix: s2]
  判断一个字符串是否以另一个字符串结尾
  [s1 hasSuffix: s2]

  区分大小写的比较字符串内容是否相等
  [s1 compare: s2]
  不区分大小写的比较字符串内容是否相等
  [s1 caseInsensitiveCompare: s2]
  caseInsensitiveCompare和 compare 方法的返回值类型是NSComparisonResult,它是一个枚举类型,定义方式:
  enum
{
      NSOrderedAscending = -1L, //表示比较的字符串小于被比较的字符串
      NSOrderedSame, //比较的字符串内容完全相等
      NSOrderedDescending  //表示比较的字符串大于被比较的字符串
}

  判断s2在s1中的位置
  NSRange range = [s1 rangOfString: s2];
  range.location //获取s2在s1中范围的位置
  range.length //获取s2在s1中范围的长度
NSRange类型是一个结构体类型,用来表示事物的范围,通常是字符串里的字符范围或者数组里的元素范围,其定义方法如下:
   typedef struct _NSRange
{
  NSUInteger location; //表示范围中的起始位置
  NSUInteger length; //表示范围的长度
} NSRange;

  从字符串的开头一直截取到指定的位置,但不包括该位置的字符
  [s1 substringToIndex:3]
  截取指定位置开始(包括指定位置的字符),并包括之后的全部字符
  [s1 substringFromIndex:3]
  按照所给出的位置,长度,任意地从字符串中截取
  [s1 substringWithRange: NSMakeRange(0,4)]

二、NSMutableString类
  NSMutableString类是NSString的子类,其创建的字符串长度和内容都是可变的。提供了追加、删除、修改、插入的一系列方法。

   添加普通字符串
  [str appendString: @"china"]
  添加一个指定形式的字符串
  [str appendFormat: @"已经有%d年了",5]

  删除可变字符串中的字符
  [str deletCharactersInRange: [str rangeOfString: @"hellow"]]

  在指定位置插入字符串
  [str insertString:@"hellow" atIndex: 2]

  把原字符串中的字符串换成另外的字符串
  [str replaceCharactersInRange:[str rangeOfString:@"hellow"] withString:@"你好"]

1 个回复

倒序浏览
666。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马