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 从文件中 ...
随机推荐
- Careerup上的简历模板
So this is what a GOOD resume look like http://www.careercup.com/resume (需FQ)
- 设计模式 适配器-Adapter
适配器模式:将一个类的接口,转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间. 直接上图.下面是对象适配器的类图.由于Java不支持多继承.所以这是Java的适配器实现方式. 结合H ...
- Python:字符串
一.序列的概念 序列是容器类型,顾名思义,可以想象,“成员”们站成了有序的队列,我们从0开始进行对每个成员进行标记,0,1,2,3,...,这样,便可以通过下标访问序列的一个或几个成员,就像C语言中的 ...
- 将dataset写入数据库
最近在将excel中的文件导入到数据库中,用程序进行编写,由于数据量较大所以速度很慢,后来采用了SqlBulkCopy类,解决了速度的问题,我就insert语句,sqldataadapter.upda ...
- Strassen算法
如题,该算法是来自德国的牛逼的数学家strassen搞出来的,因为把n*n矩阵之间的乘法复杂度降低到n^(lg7)(lg的底是2),一开始想当然地认为朴素的做法是n^3,哪里还能有复杂度更低的做法,但 ...
- Arduino1.7.10在Ubuntu下创建快捷方式
从官网下载的arduino1.7.10版本没有快捷方式只有可执行文件arduino,通过下面的方法可以创建快捷方式 打开链接:http://www.easyicon.net/1171938-ardui ...
- TCP包头
每发一个包,不论大小协议头会占用一定的空间 TCP头20字节,IP头20字节,MAC头14字节,共54字节 //Mac头部,总长度14字节 typedef struct _eth_hdr { ...
- [iOS微博项目 - 2.2] - 在app中获取授权
github: https://github.com/hellovoidworld/HVWWeibo A.发送授权请求 1.使用UIWebView加载请求页面 自定义一个继承UIViewContr ...
- javascript日期格式化方法汇总
本文给大家汇总介绍了javascript格式化日期时间的几种常用方法,个人对最后一种个性化输出时间比较有兴趣,基本上只要项目中能用到都是使用这种,推荐给小伙伴们. 方法一: ? 1 2 3 4 5 6 ...
- POJ 3659 Cell Phone Network (树dp)
题目链接:http://poj.org/problem?id=3659 给你一个树形图,一个点可以覆盖他周围连接的点,让你用最少的点覆盖所有的点. dp[i][0]表示用i点来覆盖,dp[i][1]表 ...