OC基础数据类型-NSString
1、字符串的初始化
//字符串的初始化
NSString *str = @"Hello world!";
NSString *str2 = [[NSString alloc] initWithString:str];
NSString *str3 = [[NSString alloc] initWithUTF8String:"hello world"]; //用C的字符串创建OC的字符串对象
NSString *str4 = [[NSString alloc] initWithFormat:@"hello %d %c",,'A']; //使用格式符拼接成一个字符串
用这种方法(alloc)创建的字符串需要释放一下
//用alloc生成的字符串,需要释放一下
[str2 release];
[str3 release];
[str4 release];
所有的alloc init版本的字符串声明,都对应着一个StringWith版本。不需要考虑内存管理
NSString *str5 = [NSString stringWithUTF8String:"hellow world"];
NSString *str6 = [NSString stringWithFormat:@"%d %@ %c",,@"hello",'R'];
NSString *str7 = [NSString stringWithString:str];
以上三种是自动释放,很难确认在哪里释放,所以叫临时字符串。不需要release
以上创建的字符串都是不可以变化的
2、字符串的方法
NSString *str = @"hello world!";
NSString *str2 = @"hello word!";
判断两个字符串是否相等
//判断两个字符串是否相等
BOOL ret = [str isEqualToString:str2];
NSLog(@"%d", ret);//返回true或者false,由于返回值是0或1,所以用%d
比较两个字符串的大小
//比较两个字符串的大小
NSComparisonResult comRet = [str compare:str2]; //NSComparisonResult是一个枚举,返回值NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending
if(comRet == NSOrderedAscending){
NSLog(@"str < str2");
}
else if(comRet == NSOrderedSame){
NSLog(@"str == str2");
}
else if(comRet == NSOrderedDescending){
NSLog(@"str > str2");
}
查找字符串的位置
NSString *str = @"I am a so bad man.";
NSString * subStr = @"so";
//查找subStr在str中的位置,返回NSRange
NSRange range = [str rangeOfString:subStr];//返回位置和长度
NSLog(@"location:%lu, %lu",range.location,range.length);
获取子字符串
NSString *str = @"";
NSString *str2 = [str substringToIndex:]; //从str中提取从头至第6个字符串(不包括第6个),生成新字符串,返回字符串地址。
NSString *str3 = [str substringFromIndex:]; //从str中提取第6个字符(包括第6个),到最后一个字符,生成新字符串,返回字符串地址
//根据指定范围提取字符串
NSRange range = {, };//3表示起始位置,4表示长度
NSString *str4 = [str substringWithRange:range];
NSString *str5 = [str substringWithRange:NSMakeRange(, )];//与上面相同,NSMakeRange直接返回Range
3、可变字符串:继承自字符串,拥有以上的所有方法:包括创建、提取、比较等,但是也增加了一些方法
不能用这个方法创建可变字符串:NSMutableString *str = @"Hello world!";
其他的创建方法都可以。
增加的方法:增、删、改、查
NSMutableString *str = [[NSMutableString alloc] init];
[str setString:@"hello"]; //设置可变字符串的内容,再次设置就会发生替换字符串内容
//增,两种方式:追加、插入
[str appendString:@""]; //追加append,在结尾处字符串
[str appendFormat:@"%c",'R']; //追加append,在结尾处追加格式符 [str insertString:@"XXXX" atIndex:]; //插入insert,在Index位置插入
//删,delete
[str deleteCharactersInRange:NSMakeRange(, )]; //从第3个开始,删除5个字符
//改,replace
[str replaceCharactersInRange:NSMakeRange(, ) withString:@"RRRRRRRR"];
结题!!!
OC基础数据类型-NSString的更多相关文章
- OC基础--数据类型与表达式
前言 做iOS开发有3年了,从当初的小白到现在,断断续续看过很多资料,之前也写过一些博文来记录,但是感觉知识点都比较凌乱.所以最近准备抽时间把iOS开发的相关知识进行一个梳理,主要分为OC基础.UI控 ...
- OC基础数据类型-NSNumber
1.NSNumber:专门用来装基础类型的对象,把整型.单精度.双精度.字符型等基础类型存储为对象 //基本数据类型 //专门用来装基础类型的对象 NSNumber * intNumber = [[N ...
- OC基础数据类型-NSData-NSMutableData-NSString
NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛.NSData创建后不可以再修改,NSMutableData可以再次修改. 1.NSStrin ...
- OC基础数据类型-NSSet
1.集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过NSArray是有序的集合,NSSet是无序的集合.集合是一种哈希表,运用散列算法,查找集合中的元素比数组 ...
- OC基础数据类型-NSData
1.NSData,数据,当我们需要把一些信息写入到文件里或发送到网络上,我们需要把这些数据转换下,变成纯粹的0.1字符流 1 NSString * str = @"hello, world! ...
- 【转】 OC基础数据类型-NSSet
原文 : http://www.cnblogs.com/GISerYang/p/3340937.html 1.集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过 ...
- OC基础数据类型-NSDictionary
1.字典NSDictionary 字典与数组的区别:数组讲究顺序,而字典可以快速帮助我们找到数据,数据是我们的目的,键是我们的手段 NSDictionary *dict = [[NSDictionar ...
- OC基础数据类型-NSArray
1.数组的初始化 NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @&quo ...
- 三.OC基础--1.NSString的创建和使用,2多文件开发,3类方法,4封装
三:OC--1.NSString的创建和使用, 1,创建常量字符串,注意使用“@“符号. NSString *astring = @"This is a String!"; //后 ...
随机推荐
- unity优化
1. 更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式,但他们都兼容ETC格式, 2. 对于透明贴图,我们只能选择RGBA 16 ...
- 2-3 树/红黑树(red-black tree)
2-3 tree 2-3树节点: null节点,null节点到根节点的距离都是相同的,所以2-3数是平衡树 2叉节点,有两个分树,节点中有一个元素,左树元素更小,右树元素节点更大 3叉节点,有三个子树 ...
- Redis云端架构深入浅出
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB 发表于云+社区专栏 作者介绍:邹鹏,腾讯云数据库Redis产品负责人,多年数据库.网络安全研发经验. ...
- 基于URL权限拦截的实现
一.实现原理 1.实现原理 本示例采用SpringMVC的拦截器来实现一个基于URL的权限拦截. 2.权限管理流程 二.数据库搭建 1.用户表(sys_user) (1)表结构 (2)表字段说明 ...
- Git命令学习笔记
一.本地代码增,删,改,查,提交,找回git checkout . //抛弃工作区所有修改git checkout -- <file> //抛弃工作区& ...
- Python爬虫-播报天气信息(生成exe文件)待续
#!/usr/bin/env python3 # -*- coding : utf-8 -*- '''1.从https://my.oschina.net/joanfen/blog/140364获取要播 ...
- Delphi下OpenGL2d绘图(01)-初始化
一.前言: Delphi默认支持OpenGl,可以uses OpenGL单元进行引用,便可以使用OpenGL的函数.OpenGl是跨平台的,而且Windows很早就支持并集成在系统中,存在于syste ...
- Silverlight & Blend动画设计系列四:倾斜动画(SkewTransform)
Silverlight中的倾斜变化动画(SkewTransform)能够实现对象元素的水平.垂直方向的倾斜变化动画效果.我们现实生活中的倾斜变化效果是非常常见的,比如翻书的纸张效果,关门开门的时候门缝 ...
- ASP.NET MVC4 新手入门教程之二 ---2.添加控制器
MVC 代表 模型-视图-控制器.MVC 是一个模式用于开发应用程序是很好的架构. 可检验性和易于维护.基于 MVC 的应用程序包含: Models: 类表示应用程序的数据并使用验证逻辑以执行这些数据 ...
- 解决maven项目中,缺少 maven dependencies
因为项目需要将普通项目转换为maven项目,在右键 ’项目‘configure 后,添加maven后,发现缺少 maven dependencies,于是从网上找了一些处理措施,大体上是在.class ...