NSString NSArray NSNumber

本文深入探讨了Objective-C中的字符串和数组类,包括NSString、NSMutableString、NSArray及NSMutableArray的使用方法,通过示例介绍了如何创建、操作这些对象。

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

Foudation框架是CoCoa编程,iOS编程基础架构,包括:字符串、集合、日期、时间等基础类。字符串,数组、字典都属于Foudation框架,C语言中,字符串是由char(ASCII码)字符组成。OC中字符串是有uichar(UniCode)组成。

NSString,不可变数组,即创建之后,字符串的长度不可改变.NSMutableString是可变数组,即创建之后,字符串长度可以改变。 NSMutableString是NSString的子类。

 

//main.m

 

#import<Foundation/Foundation.h>

 

int main(intargc, const char * argv[]) {

   @autoreleasepool {

       //OC中的字符串有unichar(多字节字符)组成,采用unicode编码

       // C中的字符串有char组成,采用ASCII编码。

 

        // 一

       // NSString

       // 不可变字符串:长度以及内容不可变

       // 字符串对象的创建

       // 初始化方法

 

       // 对字符串进行修改与操作的方法都是以string开头

 

//       NSString *str =[[NSStringalloc]initWithFormat:@"1234"];

//       // 将基本数据类型转化为字符串

//       // 字符串对象就是按照format之后的字符串格式。

//       NSString *str1 =[[NSStringalloc]initWithFormat:@"今年%d岁",1234];

//       NSLog(@"%@",str1);

//       //便利构造器

//       NSString *str2=[NSStringstringWithFormat:@"%@",@"fjdi"];

//       NSLog(@"%@",str2);

//       

//       // 字面量创建 (常用第三种)

//       NSString *str3 =@"大师兄";

//

//               //常⽤用⽅方法

//       //获取字符串长度。

//         //NSInterger不是一个int型

//       NSIntegerlen = [str2length];

//       NSLog(@"%ld",len);

//       

//       // 判断字符串是否以指定的字符串开始或结束

//       BOOL a = [str3hasPrefix:@"大"];

//       NSLog(@"a =%d",a);

//       

//       BOOL b = [str3hasSuffix:@"兄"];

//        NSLog(@"b =%d",b);

//       

// //  搜索字符串范围

//       NSRange range = [str1rangeOfString:@"今"];

//       NSLog(@"%ld%ld",range.length,range.location);

//

//       //获取子字符串。

//       // 从下标1开始

//        NSString *str6 =[str substringFromIndex:1];

//       NSLog(@"%@",str6);

//       // 从下标1结束

//        NSString *str7 =[str substringToIndex:1];

//       NSLog(@"%@",str7);

//       // 根据给定范围得到字符串,下标或长度越界就会崩溃

//       NSRange range2 ={1,2};

//       // NSRange range =NSMakeRange(1,2);

//       //OC中几乎所有结构体变量的创建语法:

//       // NSPoint p =NSMakePoint;

//       //NSRect r =NSMakeRect();

//       //NSRange re =NSMakeRange();

//

//        NSString *str8 =[str substringWithRange:range2];

//       //NSString *str8 =[strsubstringWithRange:NSMakeRange(1,2)];

//

//       NSLog(@"%@",str8);

//      //拼接字符串。

//       NSString *str9 =[strstringByAppendingFormat:@"%d",13];

//       NSString *str10 =[strstringByAppendingString:@"there"];

//       NSLog(@"%@",str9);

//       NSLog(@"%@",str10);

////       替换字符串。

//       // 如果第一个参数没有出现在字符串中,则不替换。

//       NSString *str11 =[str3 stringByReplacingOccurrencesOfString:@"兄"withString:@"姐"];

//        NSLog(@"%@%@",str11,str3);

////       NSString *strr =[str3 stringByReplacingCharactersInRange:range2withString:@"aa"];

////        NSLog(@"strr= %@",strr);

////       字符串比较。

//       // 比较结果分别为:-1 0 1,比较结果为枚举值

//       NSComparisonResultcomparison = [str compare:@"1236"];

//       NSLog(@"%ld",comparison);

//       //       字符串相等。

//       BOOL res =[strisEqualTo:@"123"];

//       NSLog(@"%d",res);

//       // 字符串和数值类型转换

//       int c = [strintValue];

//       NSLog(@"%d",c);

//       // 大小写转换操作.

//       

//       NSString *str12 =@"fjdiDFf";

//       NSString *up = [str12uppercaseString];

//       NSString *low = [str12lowercaseString];

//       NSString *capital =[str12 capitalizedString];

//       NSLog(@"%@",up);

//       NSLog(@"%@",low);

//       NSLog(@"%@",capital);

//       

//       NSString *str13 =@"thdkdpng";

//       if ([str13hasSuffix:@"png"] ) {

//           NSString *str14 =[str13stringByReplacingOccurrencesOfString:@"png"withString:@"jpg"];

//           NSLog(@"%@",str14);

//       }else{

//           NSString*str14 = [str13stringByAppendingString:@".jpg"];

//           NSLog(@"%@",str14);

//       }

 

 

         //二

//       // 可变字符串: 继承与不可变字符串,内容以及长度可变。

//       

//       // 1、创建可变字符串对象

//       // 下面命名错误!@"123"存在常量区,但是mStr本身可变

//        //NSMutableString *mStr = @"123";

//       NSMutableString *mStr=[[NSMutableStringalloc]initWithFormat:@"hehehe"];

//       NSMutableString *mStr1=[NSMutableStringstringWithFormat:@"hehe"];

////       2、拼接字符串。

//         // 可变字符串本身可以被修改,因此改变的是本身,不需要返回值

//       [mStrappendString:@"11"];

//       NSLog(@"%@",mStr);

//       

////       3、插⼊入字符。

//       [mStr1insertString:@"11"atIndex:2];

//       NSLog(@"%@",mStr1);

////       4、删除字符串。

//       [mStr1deleteCharactersInRange:NSMakeRange(2,2)];

//       NSLog(@"%@",mStr1);

//       

//       NSMutableString *mstr= [NSMutableStringstringWithFormat:@"tijijpg"];

//       if([mstrhasSuffix:@"jpg"] ) {

//            // 使用父类的方法,一定要有返回值

//           //mstr =  (NSMutableString *)[mstrstringByReplacingOccurrencesOfString:@"jpg"withString:@"png"];

//            [mstrreplaceCharactersInRange:NSMakeRange(5,3)withString:@"png"];

//                   }else{

//               [mstrappendString:@".png"];

//                   }

//                NSLog(@"%@",mstr);

 

       // 三

       // 数组对象

       // 数组是一个容器类:存储的是对象类型,且元素有序。

       // 不可变数组,长度以及内容不可变

       // NSArray

 

       // 1、创建数组对象,使用实例初始化或便利构造器

       //元素不能为整型,数组对象以 nil 结束

NSArray *arr = [[NSArrayalloc]initWithObjects:@"123",@"dj",@"dd",nil];

 //      NSArray *arr1=[NSArrayarrayWithObjects:@"123",@"dj",@"dd",nil];

 

       // 2、获取元素个数

NSInteger count = [arr count];

NSLog(@"%ld",count);

 

       // 3、根据索引值获取对象

NSString *s = [arr objectAtIndex:1];

NSLog(@"%@",s);

 

       // 4、获取对象在数组中的索引值

NSInteger index =[arrindexOfObject:@"dj"];

NSLog(@"%ld",index);

 

 

       // NSMutableArray

       //  可变数组:继承于不可变数组,增加了增删改等方法

       //  1、初始化一个可变数组,给定数组容量为5,如果不够,自动翻倍,10,20,40,80;

NSMutableArray *mArr = [[NSMutableArrayalloc]initWithCapacity:5];

NSMutableArray *mArr1=[[NSMutableArrayalloc]initWithObjects:@"123",@"21", nil];

NSMutableArray *mArr2=[NSMutableArrayarrayWithObjects:@"123",@"21", nil];

 

      // 2 添加元素、插入元素

       [mArr1addObject:@"apple"];

NSLog(@"%@",mArr1);

 

       [mArr1insertObject:@"little"atIndex:1];

NSLog(@"%@",mArr1);

 

       //3、删除元素、替换元素.

        [mArr1removeObject:@"little"];

        [mArr1removeObjectAtIndex:0];

NSLog(@"%@",mArr1);

 

       [mArr1replaceObjectAtIndex:1 withObject:@"less"];

NSLog(@"%@",mArr1);

 

       //4、交换指定位置的两个元素

       [mArr1exchangeObjectAtIndex:0 withObjectAtIndex:1];

NSLog(@"%@",mArr1);

 

for (inti = 0; i< [mArr1 count]; i++) {

NSLog(@"%@",[mArr1objectAtIndex:i]);

       }

for (NSMutableArray *arr in mArr1) {

NSLog(@"%@",arr);

       }

 

       // 数值对象:NSNumber能够把基本数据类型转换成对象类型

NSNumber *num =[[NSNumberalloc]initWithInt:123];

NSNumber *num1 = [NSNumbernumberWithInteger:123];

       //将数值对象添加到数组中

       [mArr1addObject:num];

       [mArr1 addObject:num1];

NSLog(@"%@",mArr1);

 

       // 将数值对象转换为整型

int a = [numintValue];

NSLog(@"%i",a);

 

 

    }

return 0;

}

;

     

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值