Foundation框架之NSString及其Mutable类型
Foundation框架之NSString及其Mutable类型
目录
- 概述
- 对字符串的实用操作
拼接
拆分
字符串比较
是否包含某字符串
字数统计
大小写转换
- 具体的方法参见API
- 待研究
概述
对NSString的理解
对字符串的实用操作
拼接
NSString *combinedStr = [NSString stringWithFormat:@"%@%@",str0,str1];
注:本人比较倾向于使用这种方式做字符串的拼接,可扩展性强,当有新需求时只需要更改format里面的即可,增删比较方便
拆分
NSArray *strArrays = [str2 componentsSeparatedByString:@"str"];
NSArray *strArrays2 = [str2 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"str"]];
字符串比较
不忽略大小写
[str isEqualToString:@"str"];
忽略大小写
[str caseInsensitiveCompare:@"str"] == NSOrderedSame
是否包含某字符串
不忽略大小写
NSRange range = [str rangeOfString:@"str"];
if(range.length>0){ //包含 }
忽略大小写
NSRange range = [str rangeOfString:@"str" options:NSCaseInsensitiveSearch];
if(range.length>0){ //包含 }
字数统计
字符总数
[str length];
某一字符串的个数(includeStr为查找的字符串)
实现方式一
NSArray *array = [str componentsSeparatedByString:includeStr];
NSUInteger sum = array.count - 1;
实现方式二
实现思路
每找到一个字符,下一次的寻找范围为先前找到的字符串的下一位置开始到字符串末尾,循环寻找,直至没有找到或者到字符串末尾
+ (NSUInteger)string:(NSString *)str includeStr:(NSString *)includeStr{
NSUInteger sum = 0;
NSUInteger index = 0;
NSRange range = [str rangeOfString:includeStr options:NSLiteralSearch range:NSMakeRange(0,[str length])];
while(range.length > 0){
sum += 1;
index = range.location + range.length;
//到字符末尾
if(index >= [str length]){
break;
}
range = [str rangeOfString:includeStr options:NSLiteralSearch range:NSMakeRange(index,[str length] - index)]; //注1
}
return sum;
}
注1
返回的NSRange的location为从字符串的头开始算起,而不是从index的位置开始算起
忽略大小写则只需要把两个地方的options参数更改成:NSCaseInsensitiveSearch
大小写转换
[str lowercaseString];
[str uppercaseString];
具体的方法参见API
待研究
根据字符串首字母进行排序
NSLocale
字符串的正则判断
Foundation框架之NSString及其Mutable类型的更多相关文章
- OC中Foundation框架之NSString、NSMutableString
创建方式 )直接赋值 NSString *str =@"abc"; )创建对象 NSString *str2 = [[NSString alloc]init]; str2 =@&q ...
- 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString
OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...
- [OC Foundation框架 - 4] NSString的导出
void exportString() { NSString *str = @"Hello, 坑爹"; NSString *path = @"/Users/hello ...
- [OC Foundation框架 - 2] NSString 的创建
A. 不可变字符串 void stringCreate() { //Don't need to release memory by this way NSString *str1 = @"S ...
- [OC Foundation框架 - 5] NSString的常用方法
NSString *s1 = "; 1.比较 使用 == 号比较的是字符串地址 NSString *s4 = @"abcdefg"; NSStrin ...
- Foundation框架系列-NSString
NSString OC字符串与C语言字符串转换 NSString *str = @"Hello world ! !"; // OC字符串 --> C语言字符串 char *c ...
- OC 知识:Foundation 框架及相关类详尽总结
本文用来介绍Foundation框架的相关知识,以及Foundation框架所提供类的相关知识总结. 1. 框架介绍 框架是由很多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使开发程序变得更加 ...
- Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型
Foundation框架之NSArray.NSDictionary.NSSet及其Mutable类型 目录 概述——对Foundation框架集合类的理解 NSArray NSDictionary N ...
- Foundation框架-NSString和NSMutableString
可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式 2.3 从文件中 ...
随机推荐
- MyEclipse2015对Javascript自动提示的终极支持
2015通过集成Tern.js,进入了JS自动提示的最新时代 先看看具体效果吧: 点击链接会进入: 而tern.js已经支持相当多的框架: 关键这个提示不只是纯粹的js文件,对于jsp等等 ...
- var隐式类型
var dogName = "ruiky"; 1.[编译器]会在编译时自动根据值的类型推断这个变量的类型: 2.变量类型不可更改:因为声明的时候已经确定类型了. 3.可 ...
- jy
222 DROP TABLE t_vhl_jy_car; CREATE TABLE t_vhl_jy_car( VEHICLE_JY_CODE ) PRIMARY KEY, VEHICLE_CODE ...
- 常见mongo命令
@(编程) 查询 db.getCollection('SalaryEntity').find({"Month" : "201601"}) db.getColle ...
- HDU3635Dragon Balls(并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=3635 题目意思是说n个球在n个城市. 每次操作把编号i的球所在的城市的所有的求全部一道另一城市B 每次询问访问编 ...
- 在完成端口中使用GetAcceptExSockaddrs
MSDN:When using AcceptEx, the GetAcceptExSockaddrs function must be called to parse the buffer into ...
- CreateWaitableTimer和SetWaitableTimer函数(定时器)
用户感觉到软件的好用,就是可以定时地做一些工作,而不需要人参与进去.比如每天定时地升级病毒库,定时地下载电影,定时地更新游戏里的人物.要想 实现这些功能,就可以使用定时器的API函数CreateWai ...
- uva 542 - France '98(概率)
题目链接:uva 542 - France '98 题目大意:有16支球队比赛,给出16支球队的名称,然后给出16*16的表格,g[i][j] 表示i队胜j队的概率,问说16支球队获得总冠军的概率. ...
- jquery ajax 序列化表单传参提交实体对象到后台action
========action后台我这里使用的是SpringMVC如果用ssh用法一致=============== @Controller@RequestMapping("PubjobCon ...
- C++STL学习笔记_(3)stack
10.2.4stack容器 Stack简介 ² stack是堆栈容器,是一种"先进后出"的容器. ² stack是简单地装饰deque容器而成为另外的一种容器. ² #inc ...