文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

Qt那些事0.0.9

关于QThread,无F*k说的。文档说的差不多,更多的是看到很多人提到Qt开发者之一的“你TM的做错了(You're doing it wrong...)”,这位大哥2010年写的博客,下面评论很多,但主要还是集中在2...

Ev4n
30分钟前
1
0
constructor / destructor

_attribute__表示属性,是Clang提供的一种源码注释,方便开发者向编译器表达诉求,一般以__attribute__(*)的方式出现在代码中。为了方便使用,一些常用属性被定义成了宏,经常出现在系统头文...

HeroHY
31分钟前
1
0
大数据教程(7.6)shell脚本定时采集日志数据到hdfs

上一篇博客博主分享了hadoop内置rpc的使用案例,本节博主将为小伙伴们分享一个在实际生产中使用的日志搜集案例。前面的文章我们有讲到过用户点击流日志分析的流程,本节就是要完成这个分析流...

em_aaron
59分钟前
1
0
wave和pcm互转

wav->pcm pcm->wav c#代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using Sys......

whoisliang
今天
1
0
Win10:默认的图片打开应用,打开图片时速度明显很慢的解决办法

首先,我们随便地打开一张图片。然后,点击右上角的三个小点,最后点击弹出菜单最下面的“设置”。如下图: 在“设置”中找到下面的“人物”,把它关掉就好了。 原来,默认情况下,Win 10的图...

LivingInFHL
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部