foundation学习

 

 

 

一、NSString字符串的使用

1.基本用法

NSString对象,一旦创建,就不可以进行再改变,如需要一个可以更改的字符串对象,需要创建NSString的可变子类NSMutableString实例。

2.字符串的创建

2.1创建一个字符串常量: NSString *string=@”hello world”;

2.2创建一个空字符串:

NSString *string=[[NSString alloc]init];

NSString *string=[NSString string];

3.快速创建字符串

   NSString *string=[[NSString alloc]initWithString:@“字符串”];

   NSString *string=[NSString stringWithString:@”字符串”];

4.创建格式字符串  

 initWithFormat  , stringWithFormat 方法

 5.小注意

       常量没有引用计数,常量创建的字符串无需要管理内存

6.比较两个字符串

6.1 “==”表示比较两个字符串的地址是否相同;

    eg:    if(string1== string2){  //code...

            }

6.2 ”isEqualToString”表示比较两个字符串的值是否相同;

     Eg : if(string1 isEqualToString:string2){   //code....

         }

   6.3 通过类方法创建字符串(不需要管理内存的)

NSString *string=[NSString stringWithCString:“abc“ encoding:

NSUTF8StringEncoding];

6.4通过实例方法创建字符串(需要手动管理内存)

  NSString *string=[[NSString alloc]initWithFormat:@””];

6.5 通过追加的方式创建字符串  stringByAppendingString 方法

6.6 NSComparisonResult re=[string1  compare:string2];  //按字母排序进行比较

7截取字符串

  7.1通过类方法:substringFormIndex:下标   //从指定的位置截取到末尾

  7.2substringToIndex:下标    //从开始位置截取到指定的下标位置

  7.3截取指定位置(NSRange (loation ,length))

          Eg: NSRange rg={4,5};   //表示从4的位置开始,截取5个长度

          等价于 NSRange rg=NSMakeRange{4,5};

         //调用截取方法   [string1  substringWithRange: rg];

          rangeofstring   //得到字符串的位置

   8.大小写之间的转换

8.1 大---> 小        lowercaseString方法

8.2小----->大        uppercaseString方法

   9.判断字符串

9.1判断字符串的开头是否与指定的字符串相同    hasPrefix方法

9.2判断字符串结尾是否与指定字符串相同     hasSuffix 方法

9.3忽略大小写进行比较  caseInsensitiveCompare

    if([str1 caseInsensitiveCompare:str2 ]==NSOrferedsame){ //

}

10.分割字符串

10.1通过指定的字符串进行分割  componentsSeparatedByString 

NSArray *array=[string1 componentsSeparateByString:@”z指定的字符串”];

10.2通过指定的字符集进行分割(空格、换行)

 

NSArray *array=[string1                                                        componentsSeparatedByCharactersInset:                      NSCharacterSetEhitespaceAndNewlineCharacterSet]];

10.3通过指定的字符将数组组合成字符串

NSString *str=[array componentsJoinedByString :@”**”;

11.替换字符串

         11.1替换指点字符串

          NSString *str=[str1 StringByReplacingOccurrenxesOfString:@"要替换的字符串" withstring :@"替换后的字符串"];

         11.2替换指点位置的字符串

         NSRange myRange=[str rangeOfString:@"字符串"];

         if(myRange.laction==NSNotFound){

                 //code.....

          } else

          {

           NSString *str=[String1 StringByReplacingcharactersInRange:myRange   withstring:@"替换字符串"];

         }

 12.数据转换

          NSString *str=@"100";

          int intNum=[str intValue];

          Float floatNum=[str floatValue];

13.可变字符串NSMutableString

   13.1.如何创建一个可变字符串

  NSMutableString *str=[[NSMutableString alloc]initWithCapacity:0];

   13.2.重新设置   setString

   13.3 根据下标插入字符串  insetString:@" " atIndex:下标值

   13.4 删除指定位置的字符串

   NSRange ge=NSMakeRange(4,5);

   [string1 deleteCharactersInRange:ge];

二、数组(NSArray)

   1.通过类方法定义数组

(无需管理内存),nil表示数组的结束

arrayWithObject:......,nil  

2.通过初始化方法定义数组

   initWithArray    (通过数组创建数组)

   initWithObject    (通过对象创建数组)

  3.如何操作数组

   3.1根据下标获取数组的元素

   objectAtIndex:下标

   3.2通过元素获取对应的下标

    indexOfObjects:@"字符",返回NSInteger

   3.3获取最后一个元素:lastObject

   3.4获取数组的长度:count

  4.循环操作数组

   4.1通过枚举

    NSEnumerator  *enu=[arry1 objectEnumerator];

    id obj;

    While((obj==[enu nextObject]))

    {

        //code.......

    }

   4.2循环    for

   4.3 for in

   for(NSString *str in array)

   {

       //code.....

   } 

  4.4反转枚举  reverseObjectEnumerator

  4.5排序

   sortedArrayUsingSelector:@"selector(compare)" 

5.可变数组(NSMutableArray)

      5.1添加元素(末尾) addObject:

      5.2插入元素

      [array1 insertObject:@" " atIndex:下标];

      5.3移除元素

      根据下标移除元素:removeObjectIndex:

      移除最后一个元素:removeLastObject:

      5.4替换元素(根据下标替换)

      replaceObjectAtIndex:下标    withObject:@"替换的字符串";

      通过下标交换:exchangeObjectAtIndex: j   withObjectAtIndex:j+1;

      5.5查找

      containsObject:@"要查找的字符";

三、 字典(NSDictionary)

1.如何创建字典?

     NSMutableDictionary *dictionary=[NSMutableDictionary  dictionaryWithCapacity: 个数];

  dictionaryWithObjectsAndKey    将元素添加到字典中

2.如何操作字典?

2.1通过键得值 objectForKey

2.2 设置字典(设置没有的键是添加,反之修改)

   setObject:@"  "  forKey:@" "

2.3移除指定键值数据     removeObjectForKey

    移除所有的数据       removeAllObjects

2.4 得到字典的个数   count

2.5 循环字典

   2.5.1  通过枚举  keyEnumerator / ObjectEnumertor 

   2.5.2  通过数组 NSArray *array=[ dic allkeys];   /allValues

          根据键获取值:objecForKey

四、 NSDate、NSDateFomatter

1.NSDate  日期

NSDate *date=[NSDate date];    //得到的是美国时间

通过dateByAddingTimeInterval:8*60*60; 得到北京时间

timeIntervalsinceNow  //得到两个日期的时间间隔(秒)

[date1 earlierDate:date2]  //比较两个日期 返回较早的日期

[date2 lateDate:date2]  //返回较晚的日期

2.NSDateFomatter   日期格式器

     //创建一个日期格式器

     NSDateFomatter *fmt=[[NSDateFormatter alloc ]init];

     //设置时间格式

     [fmt  setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

//设置日期的样式

 [fmt  setDateStryle:NSDateFormattermediumstyle];

//设置时间的样式

     [fmt  setTimeStyle:NSDateFormattershortstyle];

//将日期对象转换为字符串

NSString *dt=[fmt StringFromDate:date ];

//将字符串转换为日期对象    dateFromString

五、NSNumber   

OC的数字类型(对C数据类型的一个封装)

      1.将C语言--->OC

       NSNumber ×intNum=[NSNumber  numberWithInt:100];

      2.将OC--->C

      int  num=[intNum intValue];

      将C语言的int 型存放到数组中的话,运行时将出错的,内存错误,找不到C语言的内存。

       3.判断一个字符串是否是由数字组成

        NSString *str=@"10030";

        //用于存字符串扫描指点字符

        NSScanner *scan=[NSScanner scannerWithString:str1];

        int val;

       BOOL fg=[scan  scanInt:&val ]&&[scann isAtEnd];

   六、NSNull 空/nil

        NSNull  *nl=[NSNull null ];

      在数组中要赋空值时,运用NSNull对象,而nil表示结束。

      NULL和nil就是0,nil是一个通用对象值,而NUll是一个通用指针。

 七、NSData 字节类

       1.创建 path

       2.将文件读入data对象    initWithContentsofFile:path;

       3.data对象转换为字符串  initWithData:data ;

       4.将字符串转换为data    [string dataUsingEncoding:  ];

   八、NSTimer  定时器

       NSTimer *timer=[NSTimer scheduledTimeWithTimeInterval: 1.0  target:self  selector:@selector(方法)  userInfo:nil   repeats:YES];

      //参数的说明:TimeInterval 时间间隔的秒数

                    target:操作的目标

                    selector:定时器执行的操作

                    userInfo:参数

                    repeats:是否重复

        //停止 [ timer invalidate];

        //销毁定时器

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值