文档章节

OC基础数据类型之字符串,数组和字典

尘埃眠于光年yr
 尘埃眠于光年yr
发布于 2015/10/14 18:28
字数 1485
阅读 236
收藏 0

 //-------------字符串-----------------

    //字符串的初始化:

    //1:

    NSString *string = @"我是非凡程序员!";

    NSLog(@"%@",string);

    

    //2:

    NSString *string2 = [NSString stringWithFormat:@"我在非凡学习了%i个月",1];

    NSLog(@"%@",string2);

    

    

    //输出字符串长度:

    long length = [string length];

    NSLog(@"长度:%lu",length);

    

    

    //字符串比较: is Equal To

    NSString *string3 =@"非凡程序员";

    if([string3 isEqualToString:@"非凡员工"])//返回BOOL类型

    {

        NSLog(@"相等");

    }

    else

    {

        NSLog(@"不相等");

    }

    

    //字符串的比较  Compare //返回值是 101

    NSString *str = @"123";

    NSString *str1 = @"456";

    //str > str1 输出1str < str1 输出-1sr = str1 输出0

    //字符若是字母,区别大小写,转成ASC

    NSLog(@"%li",[str compare:str1]);

    

    //字母不区分大小写,其余与compare 相同

    NSLog(@"%li",[str caseInsensitiveCompare:str1]);

    

    

    //字符串转化:

    NSString *string4 = @"3.141";

    float f = [string4 floatValue];

    NSLog(@"%f",f);

    NSLog(@"%.2f",f);

//    float i = [string4 intValue];

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

    

    

    //字符串的截取;

    NSString *string5 =@"abcdefg";

    //1.从开始位置截取到下标为3的字符串(不包括3;

    NSString *stringnews = [string5 substringToIndex:3];

    NSLog(@"%@",stringnews);

    

    //2。从该位置截取到结尾:

    stringnews =[string5 substringFromIndex:5];

    NSLog(@"%@",stringnews);

    

    //3取一个范围 第一个数字是起始位置,第二个数字是要取的长度:

    NSRange range ={1,5};

    NSString *result = [string5 substringWithRange:range];

    NSLog(@"%@",result );

    

    

    //字符串扩展:

    NSString *string6 =@"abCdEF";

    //转大写:

    NSString *upper =[string6 uppercaseString];

    NSLog(@"%@",upper);

    //转小写:

    NSString *lower =[string6 lowercaseString];

     NSLog(@"%@",lower);

    //首字母大写,其余转小些:

    NSString *ul =[string6 capitalizedString];

    NSLog(@"%@",ul);

    

    

    //------------------可变字符串---------------:

    //1.OC中,直接赋值为不可变类型,一般可变类型都会需要申请内存空间

    //申请一块空间,返回一个空字符串

    NSMutableString *echoI = [NSMutableString string];

    

    //2.返回一个空字符串,申请一个初始存储空间,可自动增长。

    //NSMutableString *echoIII = [NSMutableString stringWithCapacity:10];

    

    //3.直接初始化

    NSMutableString *mutableString = [[NSMutableString alloc] initWithString :@"大家好"];

    NSLog(@"%@",mutableString);

    

    //追加字符串 append

    [mutableString  appendString:@"Hello"];

    //删除字符串 delete

    //[echoII deleteCharactersInRange: ]

    

    //查找相关的字符串

    NSRange rangeI =  [mutableString  rangeOfString:@"H"];

    //location代表找到的开始位置,length代表找到的长度,最小为0

    NSLog(@"%lu , %lu",  rangeI.length , rangeI.location );

    

    //替换字符串 方法一

    NSString *muStr= [mutableString  stringByReplacingOccurrencesOfString:@"el" withString:@"111111"];

    NSLog(@"%@",muStr);

    

    //替换: 方法二

    NSRange range1 = {2,1};

    

    [mutableString replaceCharactersInRange:range1 withString:@"不好"];

    NSLog(@"%@",mutableString);

    

    

    //1.增加

    //1-1追加值

    [mutableString appendString:@"下午"];

    NSLog(@"%@",mutableString);

    //1-2

    [mutableString insertString:@"上午" atIndex:0];

    NSLog(@"%@",mutableString);

    

    

    //查找

    NSRange Range2 =[mutableString rangeOfString:@"上午"];

    NSLog(@"%ld",Range2.length);

    

    

    //删除

    

    [mutableString deleteCharactersInRange:Range2];

    NSLog(@"%@",mutableString);


//---------------数组------------------

    //数组即相同数据类型的有序集合,数组有下标,下标从0开始

    

    //定义数组:不可变 不可变是不可改变相关数组的序列

    NSArray *array = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d", nil];

    NSArray *arrayI = @[ @"1", @"2" ];

    

    

    //输出数组:

    for (int i=0;i<4;i++)

    {

        NSLog(@"%@",array[i]);

    }

    NSLog(@"%@", arrayI[1] );

    

    //求数组长度:

    long len =[array count];

    NSLog(@"数组的长度是%lu",len);

    

    //根据下标找元素内容:

    NSLog(@"第二个位置是%@",[array objectAtIndex:2]);

    

    // 找一个元素的位置:

    long l=[array indexOfObject:@"d"];

    NSLog(@"l=%lu",l);

    

    //判断数组是否有某元素:

    if([array containsObject:@"e"])

    {

        NSLog(@"包含");

        

    }

    else

    {

        NSLog(@"不包含");

    }

    

    //将数组写入到文件中:

    [array writeToFile:@"/Users/a11/Desktop/test.plist" atomically:YES];

    

    //将文件读取到数组:

    NSArray *readArr =[NSArray arrayWithContentsOfFile:@"/Users/a11/Desktop/test.plist"];

    NSLog(@"%@",readArr);

    

    //将一个数组复制到另一个数组:

    NSArray *array2 =[NSArray arrayWithArray:array];

    NSLog(@"array=%@",array2);

    

    

    //数组的比较:

    NSArray *array3 =[NSArray arrayWithObjects:@"x",@"y",@"z", nil];

    if([array isEqualToArray:array3])

    {

        NSLog(@"array=array3");

    }

    else

    {

        NSLog(@"不相等");

    }

    

    //-----------------可变数组----------------

    //1.初始化一个可变数组

    //1-1可变需要申请一块内存空间

    NSMutableArray *muArray = [NSMutableArray array];

    

    //1-2申请初始的内存空间,返回一个空Array

    NSMutableArray *muArrayI = [NSMutableArray arrayWithCapacity:10];

    

    //给数组添加对象

    //1-1在末尾增加

    [muArray addObject:@"a"];

    [muArray addObject:@"b"];

    NSLog(@"%@",muArray);

    

    //1-2在任意位置插入值:

    [muArray insertObject:@"搅局" atIndex:2];

    

    

    //把不可变的Array变成可变的Array

    NSMutableArray *muArrayII= [NSMutableArray arrayWithArray:muArray];

    

    //如果初始长度为2,那追加一个数据到可变数组里此事的长度为3,也就是最大下标就是2

    

    //追加用add

    [muArrayII addObject:@"3"];

    

    //得到相关的数组的长度[muArrayII count]

    NSLog(@"%@, %li", muArrayII[2], [muArrayII count]);

    

    //删除用remove

    [muArrayII removeObject:@"2"];//移除某一个元素

    //[muArrayII removeAllObjects];//移除全部

    

    //替换某个下标的数据 某个数

    [muArrayII replaceObjectAtIndex:1 withObject:@"20"];

    

    //查找某个下标的数据 遍历查找 muArrayII[下标] C的写法

    //查找的第一种方法

    for( int i = 0 ; i < [muArrayII count]; i++ ){

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

    }

    // NSLog(@"%@, %li", muArrayII[1], [muArrayII count]);

    

    //查找的第二种方法

    for(NSString *object in muArrayII){

        NSLog(@"%@",object);


    }


//----------------字典---------------

    //初始化

    NSDictionary *dict = @{@"key1":@"value1",@"key2":@"value2"};

    NSLog(@"%@",dict);

    

    //NSNumber作为健,字符串作为健,数组作为健,字典作为健

    NSDictionary *dict2 = @{@1:@"value1",@"string":@"stringValue",@[@"array",@"array1"]:@"arrayValue",@{@"key1":@"value1"}:@"value"};

    NSLog(@"%@",dict2);

    

    //--------------可变字典----------------

    

    NSMutableDictionary *muDict = [NSMutableDictionary dictionaryWithCapacity:10];

    [muDict setObject:@"杨茹" forKey:@"1-1"];

    [muDict setObject:@"down" forKey:@"1-2"];

    [muDict setObject:@"left" forKey:@"1-3"];

    [muDict setObject:@"right" forKey:@"1-4"];

    

    //1.初始化

    //1-1键值通过两个数组设置值。注意:两个数组的个数要相同

    NSMutableDictionary *muDictI=[[NSMutableDictionary alloc]initWithObjects:@[@"left",@"right"] forKeys:@[@"1",@"2"]];

    //1-2 通过键值同时设置的方式设置,注意这里是双数个数的对象,否则会出现键值不对应,是值-键-值-键的关系。

    NSMutableDictionary *muDictII = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3", nil];

    //1-3定义一段内存空间

    NSMutableDictionary *muDictIII = [[NSMutableDictionary alloc]initWithCapacity:10];

    

    //不可变字典转换为可变字典

    NSMutableDictionary *muDict2 = [NSMutableDictionary dictionaryWithDictionary:dict];

    

    //通过count计算键值对个数

    NSLog(@"%li", [muDictI count]);

    

    //根据健取值

    id string = [muDict objectForKey:@"1-1"];

    NSLog(@"%@",string);

    NSLog(@"%@",muDict);

    

    //增加

    [muDict setObject:@"forward" forKey:@"1-1"];

    NSLog(@"%@",muDict);

    

    //删除

    // 1. 删除所有

    //[muDict removeAllObjects];

    

    // 2.根据一个键删除对应的键和值

    [muDict removeObjectForKey:@"1-1"];

    NSLog(@"%@",muDict);

    

    //3.根据多个键删除

    [muDict removeObjectsForKeys:@[@"1-1",@"1-2"]];

    

    //注意:一个键对应一个值,因此,通过某个键改变或增加对应的值的时候已经将之前的值覆盖掉

    


    

    

    //-------------NSNumber----------

    //NSNumber 类型可以是Idintfloatdoublechar

    NSNumber *number = [[NSNumber alloc]initWithInt:2];

    NSLog(@"%@",number);

    

    NSNumber *number2 = @4;

    NSLog(@"%@",number2);

    

    

    //---------------NSSet------------

    /*

     NSSetNSArray对比:

     NSSet中的元素可以重复,NSSArray不能重复

     NSSet是无序的,NSSArray是有序的。

     */


    NSSet *set = [NSSet setWithObject:@"20"];

    NSLog(@"%@",set);


© 著作权归作者所有

共有 人打赏支持
尘埃眠于光年yr
粉丝 0
博文 15
码字总数 13635
作品 0
西安
Swift4.0基础知识回顾

简单介绍一下Swift Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去《The...

博行天下
2017/12/06
0
0
iOS-Foundation框架中常用的类

Foundation框架中最常用的类。 Foundation框架中最我们经常用的类大致有NSString、NSArray、NSDictionary等等,虽然不需要将每一个类中提供了什么方法都记下来,但是需要做到心中有数,知道F...

xx_cc
2016/10/25
0
0
swift 3.0 学习

The Basics Swift是一种新型的针对苹果系列产品的开发语言。尽管如此,Swift的发展是是从你C和OC中获取的。 Swift提供所有C和OC基础类型的版本,包括为整数,整数双浮点数和浮动,Bool布尔值,...

f逍遥一世
2016/10/09
24
0
Swift 4.0 基础学习总结(一)

Swift简介 作者:Chris Lattner Swift 2010年7月开始设计,1年时间完成基本架构,经历4年开发期于WWDC 2014 苹果2014年开发者大会发布,用于撰写OS X和iOS应用程序。 特点: 语法简单,代码简...

xx_cc
2017/11/20
0
0
OC数据类型 enum NSRange NSPoint NSSize NSRect NSDate N

//------------------------------------------------ //可变的字典 NSMutableDictionary //第一种定义方式 返回一个空的字典 NSMutableDictionary mutableDict1 = [NSMutableDictionary di......

尘埃眠于光年yr
2015/10/15
146
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
33
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部