文档章节

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

尘埃眠于光年yr
 尘埃眠于光年yr
发布于 2015/10/14 18:28
字数 1485
阅读 236
收藏 0
点赞 0
评论 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
swift基本语法

1.常量和变量 定义一个常量:let 常量初始化赋值后 不能再次赋值 定义一个变量:var 赋值后 可以在此修改 后面一定要修改 否则选择let 2.Swift有数据类型推导 根据后面的值直接推出来的类型(...

KevinEmily
2016/03/05
138
0
Foundation框架之集合

一、NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组。 C语言数组有一个缺点即数...

DevShaw
2016/01/07
11
0
Lua与ObjC的交互

写在前面 很多时候我们都需要借助一些脚本语言来为我们实现一些动态的配置,那么就会涉及到如何让脚本语言跟原生语言交互的问题。平时在网上看得比较多的是使用JS(JavaScript)与iOS原生代码...

vimfung
2016/12/29
2.1K
7
foudation

// // main.m // reviseFoundationBaseType // // Created by on 15/5/28. // Copyright (c) 2015年. All rights reserved. // #import <Foundation/Foundation.h> #import "Person.h" int ......

小黑202
2016/07/15
1
0
OC语言自学《十二》---- OC(Foundation框架部分知识总结)

NSRange 表示一个范围 主要用来操作字符串 CGPoint、NSPoint 通过设置x坐标和y坐标来设置某个点 IOS设备的x和y从左上角开始,y值往下面增加,x值往右面增加 CGSize、NSSize 表示一个矩形尺寸...

罗眯眯
2014/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

与女儿谈商业模式 (5):糖果连锁店?

分类:与女儿谈商业模式 2007-08-02 15:27阅读(8394)评论(32)   与女儿谈商业模式(5):糖果连锁店?   陈志武 /文   谈过星巴克、沃尔玛、戴尔以及微软的故事后,给陈笛印象最深的莫...

祖冲之
4分钟前
0
0
Linux平台下RMAN异机恢复总结

潇湘隐者 Linux平台下RMAN异机恢复总结 2017-05-29 16:30 by 潇湘隐者, ... 阅读, ... 评论, 收藏, 编辑 下面总结、整理一下RMAN异机恢复这方面的知识点,这篇笔记在个人笔记里面躺了几年了,...

rootliu
11分钟前
0
0
Spring配置xml启动报错 Connot find 'beans'

1.我们先看一下spring的原始配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc......

江湖鱼大虾
13分钟前
0
0
www.w3.org被qiang导致logback报错:Connect reset

web项目部署到tomcat后,web项目中的logback不能运行,报错信息如下: Reported exception: ch.qos.logback.core.joran.spi.JoranException: I/O error occurred while parsing xml file......

浮躁的码农
36分钟前
0
0
JDeveloper中文乱码解决

全局设置字体; 全局设置环境编码; 项目设置编译器环境编码。

wffger
今天
2
0
MySQL主从介绍 , 准备工作,配置主,配置从, 测试主从同步

MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启bin...

TaoXu
今天
2
0
线性代数学习总结

亭子happy
今天
1
0
Java8:Lambda表达式增强版Comparator和排序

1、概述 在这篇教程里,我们将要去了解下即将到来的JDK 8(译注,现在JDK 8已经发布了)中的Lambda表达式——特别是怎样使用它来编写Comparator和对集合(Collection)进行排序。 这篇文章是...

孟飞阳
今天
0
0
从架构到组件,深挖istio如何连接、管理和保护微服务2.0?

近几年我一直从事于微服务系统的设计以及实现方面的工作,属于微服务架构一线实践者。之前做过一些单体系统的微服务改造,在微服务拆分、治理等方面都有一定的经验。 本人比较特殊一点的经历...

xiaomin0322
今天
1
0
基于vue的h5文件切片上传(获取文件md5,实现秒传、进度条实现)

template <button @click="file"></button><label ref="upload" style="position: relative;"> <input type="file" @change="selectFile" style="position: abs......

hkaikai
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部