如何使用NSString结构体使用方法

8089人阅读
iOS/Objc中的结构体如何 转为 &一个 NSString 方法呢?
或者一个字符串如何转换为 结构体呢? 系统已经为我们提供了很多好用的函数了!
此处列举一下:
结构体转字符串
NSString *NSStringFromCGPoint(CGPoint point);
NSString *NSStringFromCGVector(CGVector vector);
NSString *NSStringFromCGSize(CGSize size);
NSString *NSStringFromCGRect(CGRect rect);
NSString *NSStringFromCGAffineTransform(CGAffineTransform transform);
NSString *NSStringFromUIEdgeInsets(UIEdgeInsets insets);
NSString *NSStringFromUIOffset(UIOffset offset);
字符串转 结构体
CGPoint CGPointFromString(NSString *string);
CGVector CGVectorFromString(NSString *string);
CGSize CGSizeFromString(NSString *string);
CGRect CGRectFromString(NSString *string);
//我们在监听高度变化时需要用这个 ,获取键盘的frame 值,就是从一个 string类型中取出 CGRect!
CGAffineTransform CGAffineTransformFromString(NSString *string);
UIEdgeInsets UIEdgeInsetsFromString(NSString *string);//距离边界的距离,上左下右的顺序!
UIOffset UIOffsetFromString(NSString *string);
注意: 本文的字符串 转结构体是针对 iOS工程的
http://blog.csdn.net/yangbingbinga
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:335930次
积分:3668
积分:3668
排名:第9467名
原创:96篇
评论:38条
阅读:4945
阅读:29716
(3)(1)(1)(8)(2)(2)(1)(2)(1)(2)(9)(4)(5)(5)(12)(25)(8)(3)(5)(1)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。iOS中字符串的用法汇总
招聘信息:
投稿文章,作者:会跳舞的狮子()这篇文章主要详细介绍iOS中字符串的各种用法,如果发现不够完善可以提交意见,主要是方便对字符串的使用的理解,内容比较多但是详细,如果觉得以后用得着的地方可以先收藏着。NSString的基本概念 (NSString是不可变字符串)什么是NSString?一个NSString代表一个字符串(文字内容)一般称NSString为字符串类NSString的创建方式 (两种)-&(void)touchesBegan:(NSSet&*)touches&withEvent:(UIEvent&*)event
//&&&&[self&create1];
&&&&[self&create2];
/**&第一种创建方式&*/
//常量区中的字符串只要内容一致,&不会重复创建
-&(void)create1
&&&&NSString&*str1&=&@"lion";
&&&&NSString&*str2&=&@"lion";
&&&&//输出地址不一样
&&&&NSLog(@"\n&%p&\n&%p",&str1,&str2);
/**&第二种创建方式&*/
//堆区中得字符串哪怕内容一致,&也会重复创建
-&(void)create2
//stringWithFormat&可以进行拼接
&&&&NSString&*str1&=&[NSString&stringWithFormat:@"lion"];
&&&&NSString&*str2&=&[NSString&stringWithFormat:@"lion"];
&&&&//输出地址相同
&&&&NSLog(@"\n&%p&\n&%p",str1,str2);
}NSString的读写读取://&用来保存错误信息
NSError&*error&=&
//&读取文件内容
NSString&*str&=&[NSString&stringWithContentsOfFile:@"/Users/LJH/Desktop/Lion.txt"&encoding:NSUTF8StringEncoding&error:&error];
//&如果有错误信息
if&(error)&{
&&&&NSLog(@"读取失败,&错误原因是:%@",&[error&localizedDescription]);
}&else&{&//&如果没有错误信息
&&&&NSLog(@"读取成功,&文件内容是:\n%@",&str);
}写入://&writeToFile&写入
NSString&*str&=&@"Lion";
BOOL&flag&=&[str&writeToFile:@"/Users/LJH/Desktop/Lion.txt"&atomically:YES&encoding:NSUTF8StringEncoding&error:nil];
if&(flag&==&1)
&&&&NSLog(@"写入成功");
//注意:&重复写入同一个文件会覆盖上一个文件字符串的比较NSString的大小写属性全部字符转为大写字母-&(NSString&*)uppercaseS全部字符转为小写字母-&(NSString&*)lowercaseString首字母变大写,其他字母都变小写-&(NSString&*)capitalizedStringNSString的比较one:-&(BOOL)isEqualToString:(NSString&*)aS
两个字符串的内容相同就返回YES,&否则返回NO
&&&&NSString&*str1&=&@"lion";
&&&&NSString&*str2&=&[NSString&stringWithFormat:@"lion"];
&&&&if&([str1&isEqualToString:str2])&{
&&&&&&&&NSLog(@"字符串内容一样");
&&&&if&(str1&==&str2)&{
&&&&&&&&NSLog(@"字符串地址一样");
&&&&}two:-&(NSComparisonResult)compare:(NSString&*)这个方法可以用来比较两个字符串内容的大小比较方法: 逐个字符地进行比较ASCII值,返回NSComparisonResult作为比较结果NSComparisonResult是一个枚举,有3个值:如果左侧 > 右侧,返回NSOrderedDescending,如果左侧 < 右侧,返回NSOrderedAscending,如果左侧 == 右侧返回NSOrderedSameNSString&*str1&=&@"abc";
NSString&*str2&=&@"abd";
switch&([str1&compare:str2])&{
&&&&case&NSOrderedAscending:
&&&&&&&NSLog(@"后面一个字符串大于前面一个");
&&&&case&NSOrderedDescending:
&&&&&&&NSLog(@"后面一个字符串小于前面一个");
&&&&case&NSOrderedSame:
&&&&&&&NSLog(@"两个字符串一样");
}输出结果: 后面一个字符串大于前面一个three:-&(NSComparisonResult)&caseInsensitiveCompare:(NSString&*)忽略大小写进行比较,返回值与compare:一致字符串搜索-&(BOOL)hasPrefix:(NSString&*)aS是否以aString开头-&(BOOL)hasSuffix:(NSString&*)aS是否以aString结尾-&(NSRange)rangeOfString:(NSString&*)aS用来检查字符串内容中是否包含了aString如果包含, 就返回aString的范围如果不包含, NSRange的location为NSNotFound, length为0NSRange基本概念NSRange是Foundation框架中比较常用的结构体, 它的定义如下:typedef&struct&_NSRange&{
&&&&NSUInteger&
&&&&NSUInteger&
//&NSUInteger的定义
typedef&unsigned&int&NSUINSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围NSRange有2个成员NSUInteger location : 表示该范围的起始位置NSUInteger length : 表示该范围内的长度比如@“I Miss You Lion”中的@“Lion”可以用location为11,length为4的范围来表示NSRange的创建有3种方式创建一个NSRange变量方式1NSRange&
range.location&=&11;
range.length&=&4;方式2NSRange&range&=&{11,&4};或者NSRange&range&=&{.location&=&11,.length&=&4};方式3 : 使用NSMakeRange函数NSRange&range&=&NSMakeRange(11,&4);字符串的截取one:-&(NSString&*)substringFromIndex:(NSUInteger)从指定位置from开始(包括指定位置的字符)到尾部-&(void)subFrom
&&&&//字符从0开始算
&&&&NSString&*str&=&@"会跳舞的狮子";
&&&&str&=&[str&substringFromIndex:6];
&&&&NSLog(@"str&=&%@",&str);
&&&&//打印结果&str&=&会跳舞的狮子
}two:-&(NSString&*)substringToIndex:(NSUInteger)从字符串的开头一直截取到指定的位置to,但不包括该位置的字符-&(void)subTo
&&&&NSString&*str&=&@"会跳舞的狮子";
&&&&str&=&[str&substringToIndex:12];
&&&&NSLog(@"str&=&%@",&str);
&&&&//打印结果&str&=&会跳舞的狮子
}three:-&(NSString&*)substringWithRange:(NSRange)按照所给出的NSRange从字符串中截取子串-&(void)subWithRange
&&&&NSString&*str&=&@"会跳舞的狮子";
&&&&NSRange&
&&&&&range.location&=&6;
&&&&&range.length&=&6;
&&&&range.location&=&[str&rangeOfString:@">"].location&+&1;
&&&&range.length&=&[str&rangeOfString:@"</"].location&-&range.
&&&&NSString&*result&=&[str&substringWithRange:range];
&&&&NSLog(@"result&=&%@",&result);
&&&&//打印结果&&&会跳舞的狮子
}字符串的替换-&(NSString&*)stringByReplacingOccurrencesOfString:(NSString&*)target&withString:(NSString&*)用replacement替换target-&(void)Replacing
&&&&NSString&*str&=&@"http:***lion.png";
&&&&NSString&*newStr&=&[str&stringByReplacingOccurrencesOfString:@"*"&withString:@"/"];
&&&&NSLog(@"newStr&=&%@",&newStr);
-&(NSString&*)stringByTrimmingCharactersInSet:(NSCharacterSet&*)去除首尾-&(void)Trimming
&&&&NSString&*str&=&&@"&&&/lion.png&&&";
&&&&//去除首尾的空格
&&&&NSString&*newStr&=&[str&stringByTrimmingCharactersInSet:[NSCharacterSet&whitespaceCharacterSet]];
&&&&NSLog(@"str&=|%@|",&str);
&&&&NSLog(@"newStr&=|%@|",&newStr);
&&&&&打印结果
&&&&&str&=|&&&/lion.png&&&|
&&&&&newStr&=|/lion.png|
}字符串与路径NSString 与 路径one:-&(BOOL)isAbsoluteP
//是否为绝对路径
-&(void)isAbsolutePath
&&&&//&其实就是判断是否以/开头
&&&&NSString&*str&=&@"/Users/LJH/Desktop/Lion.txt";
&&&&NSString&*str&=&@"Users/LJH/Desktop/Lion.txt";
&&&&if&([str&isAbsolutePath])&{
&&&&&&&&NSLog(@"是绝对路径");
&&&&&&&&NSLog(@"不是绝对路径");
}two:-&(NSString&*)lastPathC
获得最后一个目录
-&(void)lastPathComponent
&&&&//&截取最后一个/后面的内容
&&&&NSString&*str&=&@"/Users/LJH/Desktop/Lion.txt";
&&&&NSString&*component&=&[str&lastPathComponent];
&&&&NSLog(@"component&=&%@",&component);
}three:-&(NSString&*)stringByDeletingLastPathC
删除最后一个目录
-&(void)stringByDeletingLastPathComponent
&&&&//&其实就是上次最后一个/和之后的内容
&&&&NSString&*str&=&@"/Users/LJH/Desktop/Lion.txt";
&&&&NSString&*newStr&=&[str&stringByDeletingLastPathComponent];
&&&&NSLog(@"newStr&=&%@",&newStr);
&&&&//打印结果:newStr&=&/Users/LJH/Desktop
}four:-&(NSString&*)stringByAppendingPathComponent:(NSString&*)在路径的后面拼接一个目录&(也可以使用stringByAppendingString:或者stringByAppendingFormat:拼接字符串内容)
-&(void)stringByAppendingPathComponent
&&&&//&其实就是在最后面加上/和要拼接得内容
&&&&//&注意会判断后面有没有/有就不添加了,&没有就添加,&并且如果有多个会替换为1个
&&&&//&&&&NSString&*str&=&@"/Users/NJ-Lee/Desktop";
&&&&NSString&*str&=&@"/Users/LJH/Desktop/";
&&&&NSString&*newStr&=&[str&stringByAppendingPathComponent:@"Lion"];
&&&&NSLog(@"newStr&=&%@",&newStr);
&&&&//打印结果:newStr&=&/Users/LJH/Desktop/Lion
}NSString 与 文件拓展名-&(void)pathExtension
-&(NSString&*)pathE
获得拓展名
&&&&//&其实就是从最后面开始截取.之后的内容
&&&&//&&&&NSString&*str&=&@"Lion.txt";
&&&&NSString&*str&=&@"abc.Lion.txt";
&&&&NSString&*extension&=&[str&pathExtension];
&&&&NSLog(@"extension&=&%@",&extension);
&&//打印结果:extension&=&txt
-&(NSString&*)stringByDeletingPathE
删除尾部的拓展名
-&(void)stringByDeletingPathExtension
&&&&//&其实就是上次从最后面开始.之后的内容
&&&&NSString&*str&=&@"love.Lion.txt";
&&&&NSString&*newStr&=&[str&stringByDeletingPathExtension];
&&&&NSLog(@"newStr&=&%@",&newStr);
&&&&//打印结果&newStr&=&love.Lion
-&(NSString&*)stringByAppendingPathExtension:(NSString&*)
在尾部添加一个拓展名
-&(void)stringByAppendingPathExtension
&&&&//&其实就是在最后面拼接上.和指定的内容
&&&&NSString&*str&=&@"Lion";
&&&&NSString&*newStr&=&[str&stringByAppendingPathExtension:@"png"];
&&&&NSLog(@"newStr&=&%@",&newStr);
&&&&//打印结果:&&newStr&=&Lion.png
}字符串与基本数据类型的转换-&(NSUInteger)返回字符串的长度(有多少个文字)-&(unichar)characterAtIndex:(NSUInteger)返回index位置对应的字符转为基本数据类型-&(double)doubleV
-&(float)floatV
-&(int)intV
&&&&NSString&*str1&=&@"22";
&&&&NSString&*str2&=&@"22";
&&&&int&res&=&str1.intValue&+&str2.intV
&&&&NSLog(@"res&=&%i",&res);
&&&&NSString&*str1&=&@"22";
&&&&NSString&*str2&=&@"22.2";
&&&&double&res&=&str1.doubleValue&+&str2.doubleV
&&&&NSLog(@"res&=&%f",&res);转为C语言中的字符串-&(char&*)UTF8S
&&&&NSString&*str&=&@"love";
&&&&const&char&*cStr&=&[str&UTF8String];
&&&&NSLog(@"cStr&=&%s",&cStr);
&&&&char&*cStr&=&"love";
&&&&NSString&*str&=&[NSString&stringWithUTF8String:cStr];
&&&&NSLog(@"str&=&%@",&str);
将一个字符串分隔成多个字符串
&&&&//&将一个字符串分隔成多个字符串
&&&&//-&(NSArray&*)componentsSeparatedByString:(NSString&*)separator
-&(void)componentsSeparatedByString
&&&&//&假如有一个字符串
&&&&NSString&*list&=&@"java,oc,c,swift";
&&&&//&可以用上面的函数得到一个字符串数组:
&&&&NSArray&*listItems&=&[list&componentsSeparatedByString:@","];
&&&&//&这个数组就是把原来的字符串用","分割得到的多个字符串:
&&&&//所以如果用这个方法就可以将字符串分隔多个字符串,然后存放到数组里面,在数组中取出想要的字符串
&&&&NSLog(@"%@",listItems);
&&&&//打印结果见下:
&&&&&&11:09:22.337&NSString的基本使用[]&(
&&&&&java,
&&&&&swift
}NSMutableString的用法 (NSMutableString是可变字符串)NSMutableString的基本概念NSMutableString 类 继承NSString类,那么NSString供的方法在NSMutableString中基本都可以使用,NSMutableString好比一个字符串链表,它可以任意的动态在字符串中添加字符 串 删除字符串 指定位置插入字符串,使用它来操作字符串会更加灵活。NSMutableString和NSString的区别NSString是不可变的, 里面的文字内容是不能进行修改的 + NSMutableString是可变的, 里面的文字内容可以随时更改NSMutableString能使用NSString的所有方法字符串中的可变和不可变不可变:指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生变化-&(void)str
&&&&//&改变了指针的指向,&并没有修改字符串
&&&&NSString&*str&=&@"lion";
&&&&str&=&@"Lion";
&&&&//&生成了一个新的字符串,&并没有修改字符串
&&&&NSString&*newStr&=&[str&substringFromIndex:1];
&&&&NSLog(@"str&=&%@",&str);
&&&&NSLog(@"newStr&=&%@",&newStr);
}可变:指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改-&(void)strM
&&&&//可变的不能赋值给不可变的
&&&&//只有不可变的才能赋值给可变的
&&&&NSString&*str&=&
&&&&NSMutableString&*strM&=&[NSMutableString&string];
&&&&NSLog(@"strM&=&%@",&strM);
&&&&//&修改原有字符串,&没有生成新的字符串
&&&&[strM&appendString:@"Lion"];
&&&&NSLog(@"strM&=&%@",&strM);
&&&&[strM&appendString:@"&love&you&"];
&&&&NSLog(@"strM&=&%@",&strM);
&&&&str&=&strM;
&&&&NSLog(@"str&=&%@",str);
}NSMutableString常用方法one:-&(void)appendString:(NSString&*)aS
拼接aString到最后面
-&(void)appendFormat:(NSString&*)format,&...;
拼接一段格式化字符串到最后面
-&(void)appendStrM
&&&&NSMutableString&*strM&=&[NSMutableString&string];
&&&&NSLog(@"strM&=&%@",&strM);
&&&&[strM&appendString:@"Lion"];
&&&&NSLog(@"strM&=&%@",&strM);
}two:-&(void)deleteCharactersInRange:(NSRange)
&删除range范围内的字符串
-&(void)deleteCharactersInRange
&&&&NSMutableString&*strM&=&[NSMutableString&stringWithString:@""];
&&&&//&一般情况下利用rangeOfString和deleteCharactersInRange配合删除指定内容
&&&&NSRange&range&=&[strM&rangeOfString:@"http://"];
&&&&[strM&deleteCharactersInRange:range];
&&&&NSLog(@"strM&=&%@",&strM);
&&&&//打印内容:&strM&=&
}three:-&(void)insertString:(NSString&*)aString&atIndex:(NSUInteger)
在loc这个位置中插入aString
-&(void)insertString
&&&&NSMutableString&*strM&=&[NSMutableString&stringWithString:@""];
&&&&[strM&insertString:@"http://"&atIndex:0];
&&&&NSLog(@"strM&=&%@",&strM);
&&&&//打印内容:&strM&=&
}four:-&(void)replaceCharactersInRange:(NSRange)range&withString:(NSString&*)aS
&&使用aString替换range范围内的字符串
-&(void)replaceOccurrencesOfString
&&&&NSMutableString&*strM&=&[NSMutableString&stringWithString:@"/lion.png"];
&&&&NSRange&range&=&[strM&rangeOfString:@"lion"];
&&&&[strM&replaceOccurrencesOfString:@"lion"&withString:@"super&Man"&options:0&range:range];
&&&&NSLog(@"strM&=&%@",&strM);
&&&&//打印内容:strM&=&/super&Man.png
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量6265点击量4590点击量4565点击量3500点击量2909点击量2409点击量2381点击量2351点击量2333
&2016 Chukong Technologies,Inc.
京公网安备89博客分类:
结构体类型定义:
struct Date = {
struct Date d = {};
d.day = 6;
typedef struct Date = {
Date d = {};
NSRange得使用
NSRange range = NSMakeRange(8, 10);
range.location
range.length
//转变成字符串打印出来
NSString *str = NSStringFromRange(8, 11);
NSLog(@"%@", str);
NSPoint得使用
//x = 10, y = 9
NSPoint p = NSMakePoint(10,9);
NSString *str = NSStringFromPoint(p);
NSLog(@"%@", str);
NSSize得使用
//NSSize包括width和height
NSSize s = NSMakeSize(100, 50);
NSString *str = NSStringFromSize(s);
NSRect得使用
//NSRect包括origin和size
NSRect r = NSMakeRect(10,5, 100, 100);
NSString *str = NSStringFromRect(r);
浏览: 217389 次
来自: 上海
纠结了几天,用了你的方法,现在解决了,谢谢!
你好,我在运用PageWidget这个类时,出现第一页翻到第二 ...
如果不显示printDialog,则打印出来的是空白页,请问你 ...
weiqiulai 写道哥们儿,我怎么没有看到监控队列的配置和 ...
哥们儿,我怎么没有看到监控队列的配置和代码?
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'NSString超全总结 - 简书
NSString超全总结
问题:NSString到底是不是字符串?
NSString 是 OC中专门处理字符串的对象!提供了转换大小写,拼接字符串,lastPathComponent等方法!
一.NSString : 不可变字符串
1.字符串的创建
// 创建一个新的空字符串
NSString *string1 = [NSString string];
// C语言字符串
char *name = "hello word";
// 初始化一个字符串,在赋值
NSString *string2 = [[NSString alloc] init];
string2 = @"wangchong";
NSString *string3 = @"hello";
// 一下两个方法是把字符串做一次拷贝,返回拷贝后的字符串
NSString *string4 = [NSString stringWithString:@"hello"];
NSString *string5 = [[NSString alloc] initWithString:string3];
NSLog(@"%p,%p,%p",&string3,&string4,&string5);
NSString *string6 = [string5 stringByAppendingString:@"\nHi"];
// 把C的字符串转化为OC的字符串
NSString *str = [[NSString alloc] initWithUTF8String:"hello world"];
NSString *str2 = [NSString stringWithUTF8String:"hello world"];
// 用格式化字符串初始化
可完成字符串的拼接以及完成C的字符串与OC的字符串的转化
int a = 123;
NSString *str3 = [[NSString alloc]initWithFormat:@"a = %d %s%@", a, "aaaa", @"bbbb"];
NSString *str4 = [NSString stringWithFormat:@"%s","hello world"];
2.字符串的类型转换
NSString * str = @"hello";
const char *p = [str UTF8String]; // 将OC字符串转化为C的字符串
str = @"123";
int a = [str intValue]; // 将数字串转化成整型数据
[str floatValue]; // 将数字串转化成float型
[str doubleValue]; // 将数字串转化成double型
// 结构体 输出
// 结构体 [点] 转换字符串
NSString *str1 = NSStringFromCGPoint(point);
// 结构体 [尺寸] 转换字符串
NSString *str2 = NSStringFromCGSize(size);
// 结构体 [矩形] 转换字符串
NSString *str3 = NSStringFromCGRect(rect);
3.字符串大小写转换
&pre name="code" class="objc"& // 全部转为大写
// 结果 ABC
[@"abc" uppercaseString];
// 全部转为小写
// 结果 bcd
[@"BCD" lowercaseString];
// 首字母大写
// 结果 Acb
[@"acb" capitalizedString];
4.字符串比较
// 比较两个字符串内容是否相同
// 相等返回 yes 不相等返回 no
BOOL b =[str isEqualToString:str2];
//判断str2中是否包含str1
[str2 containsString:str1];
// 忽略大小写进行比较
NSComparisonResult
result1 = [string caseInsensitiveCompare:str];
NSComparisonResult
result2 = [string localizedCaseInsensitiveCompare:str];
// 两个字符串内容比较
// NSComparisonResult result = {NSOrderedAscending, NSOrderedSame,NSOrderedDescending}
// NSOrderedAscending
右边 & 左边
// NSOrderedSame
// NSOrderedDescending
左边 & 右边
NSComparisonResult result3 = [str compare:str2];
NSComparisonResult result4 = [string compare:@"taojian" options:NSCaseInsensitiveSearch];
NSComparisonResult result5 = [string compare:@"taojian" options:NSCaseInsensitiveSearch range:NSMakeRange(0, string.length)];
NSComparisonResult result6 = [string compare:@"taojian" options:NSCaseInsensitiveSearch range:NSMakeRange(0, string.length) locale:nil];
NSComparisonResult result7 = [string localizedCompare:str];
options: // 枚举参数
NSCaseInsensitiveSearch = 1, // 不区分大小写比较
NSLiteralSearch = 2, // 区分大小写比较
NSBackwardsSearch = 4, // 从字符串末尾开始搜索
NSAnchoredSearch = 8, // 搜索限制范围的字符串
NSNumbericSearch = 64 // 按照字符串里的数字为依据,算出顺序。例如 Foo2.txt & Foo7.txt & Foo25.txt
// 以下定义高于 mac os 10.5 或者高于 iphone 2.0 可用
NSDiacriticInsensitiveSearch = 128, // 忽略 "-" 符号的比较
NSWidthInsensitiveSearch = 256, // 忽略字符串的长度,比较出结果
NSForcedOrderingSearch = 512 // 忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending
// 以下定义高于 iphone 3.2 可用
/// 只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。
/// 使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearc
NSRegularExpressionSearch = 1024
5.字符串搜索
// 判断字符串是否以abc开头
[@"abcdfa" hasPrefix:@"abc"];
// 判断字符串是否bcd结尾
[@"adbcd" hasSuffix:@"bcd"];
// 判断字符串是否包含指定字符串,返回位置和长度
NSRange range = [@"123456" rangeOfString:@"456"];
// 搜索字符串所在的范围
NSRange range = [@"qweasasd456" rangeOfString:@"456" options:NSBackwardsSearch];
// 输出{17, 3}
// 指定范围进行搜索
NSRange range = NSMakeRange(0, 9);
range = [@"qweasasd456" rangeOfString:@"456" options:NSBackwardsSearch range:range];
// 找与之开头相同的字符 返回相同开头的字符串
NSString *string = @"fg
abcdefg hijklmn s
d \n fdsgf";
NSString *str = [string commonPrefixWithString:@"fgsdfgrg" options:NSLiteralSearch]; // 输出fg
6.字符串截取
&pre name="code" class="objc"&&pre name="code" class="objc"&NSString * str5 = @"helloworld";
NSString * ptr1 = [str5 substringToIndex:2];// 字符串抽取 从头开始抽取2个字母,返回he
NSString * ptr2 = [str5 substringFromIndex:4];// 从第4个字母开始抽取到字符串结束,返回oworld
NSRange range1 = {6,2};// 结构体初始化
NSString * ptr3 = [str5 substringWithRange:range1];// 在range指定范围内抽取,返回or
NSString * ptr4 = [str5 substringWithRange:NSMakeRange(6,2)];// NSMakeRange可以生成一个结构体
// 取出字符串"123-456-789-000"中的数字部分,组成一个新的字符串输出
NSMutableString *strm = [NSMutableString stringWithString:@"123-456-789-000"]; //只有可变字符串有这个方法
[strm replaceOccurrencesOfString:@"-"
withString:@""
options:NSLiteralSearch
range:NSMakeRange(0, strm.length)];
NSLog(@"%@",strm);
7.字符串的遍历
// 根据\n遍历
NSString *string = @"
abcdefg hijklmn s
d \n fdsf";
// 根据\n一行一行的打印
[string enumerateLinesUsingBlock:^(NSString *line, BOOL *stop){
NSLog(@"\n%@",line);
// 根据 条件options 遍历
NSString *string = @"
abcdefg hijklmn s
NSMutableString * mutableString = [NSMutableString string];
// NSStringEnumerationByWords:将string按空格分开,并且会自动清理首尾的空格
// 这个方法会把中间多余的空格也清理掉,比如上面的字符串,s和d之间有两个空格,会变成一个空格
[string enumerateSubstringsInRange:NSMakeRange(0, string.length) options:NSStringEnumerationByWords usingBlock:
^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop)
[mutableString appendFormat:@"%@ ",substring];
// 删除我们添加的末尾的一个空格
[mutableString deleteCharactersInRange:NSMakeRange(outputString.length-1, 1)];
8.路径操作与数组操作
// 用指定字符串分割字符串,返回一个数组
NSArray *array = [@"1,2,3,4,5,6" componentsSeparatedByString:@","];
// 根据空格拆分
NSArray *array = [string componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
// 将数组中的字符串组合成一个文件路径
NSMutableArray *components = [NSMutableArray array];
[components addObject:@"Users"];
[components addObject:@"CentralPerk"];
[components addObject:@"Desktop"];
NSString *path = [NSString pathWithComponents:components];
NSLog(@"%@",path);
//Users/CentralPerk/Desktop
// 将一个路径分割成一个数组
NSArray *array1 = [path pathComponents];
NSLog(@"%@",array1);
// 判断是否为绝对路径(依据:是否以'/'开始)
path = @"/Users/CentralPerk/Desktop";
NSLog(@"%i",[path isAbsolutePath]);
// 获取最后一个目录
NSLog(@"%@",[path lastPathComponent]);
// 删除最后一个目录
NSLog(@"%@",[path stringByDeletingLastPathComponent]);
// 拼接一个目录
NSLog(@"%@",[path stringByAppendingPathComponent:@"aaa"]);
//Users/CentralPerk/Desktop/aaa
NSLog(@"%@",[path stringByAppendingString:@"aaa"]);
//Users/CentralPerk/Desktopaaa
NSLog(@"%@",[path stringByAppendingFormat:@"%@%@",@"b",@"c"]);
//Users/CentralPerk/Desktopbc
9.文件扩展名
// 拓展名出来
// 获取拓展名,不带.
NSString *str2 = @"Users/CentralPerk/Desktop/test.txt";
NSLog(@"%@",[str2 pathExtension]);
// 添加拓展名,不需要带.
NSLog(@"%@",[str2 stringByAppendingPathExtension:@"mp3"]);
// 删除拓展名,带.一块删除
NSLog(@"%@",[str2 stringByDeletingPathExtension]);
10.文件操作
// 将字符串设置为path制定的文件的内容
-(id) initWithContentsOfFile:path encoding:enc error:err
// 创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误
+(id) stringWithContentsOfFile:path encoding:enc error:err
// 将字符串设置为url(NSURL *)url的内容,使用字符编码enc,如果非零,则返回err中的错误
-(id) initWithContentsOfURL:url encoding:enc error:err
// 创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误
+(id) stringWithContentsOfURL:url encoding:enc error:err
// 求字符串长度
[str1 length]
// 获取字符串中的字符
[str1 characterAtIndex:1]
// 清楚左右两段的空格
NSString *str = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
// 在字符串后面补0
NSString *str = [string stringByPaddingToLength:12 withString:@"0" startingAtIndex:0];
二、NSMutableString
// 将不可变的字符串转换为可变的字符串
NSMutableString * str =
[[NSMutableString alloc]initWithString:@"hello world"];
// 在指定下标为2的(不要越界)位置插入013字符串
[str insertString:@"013" atIndex:2];
// 在字符串末尾追加字符串taotao
[str appendString:@"taotao"];
// 从0位置删除2个字符
[str deleteCharactersInRange:NSMakeRange(0, 2)];
// 给字符串重新赋值
[str setString:@"yintian"];
// 将3位置后1个字符替换成ios字符串
[str replaceCharactersInRange:NSMakeRange(3, 1) withString:@"ios"];
// 根据选项 opts ,使用指定 range 中的nsstring2 替换所有的 nsstring
-(void)replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range
小天使虽然走了,但是你永远活在我的心中.}

我要回帖

更多关于 结构体使用方法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信