OC学习----可变字符串
来源:互联网 发布:c语言文件加密程序 编辑:程序博客网 时间:2024/06/16 07:20
OC学习4
可变字符串学习
/* 开学 OC 中 Foundation 框架下的基础类 */ /* NSValue和NSNumber 功能 将 OC 和 C 语言当中的基本数据类型转换成实例对象,即将值类型转换成引用类型 NSValue 为NSNumber的父类 其中NSValue类可以将CGPoint,CGSize,CGRect,NSRange,NSEdgeInsets转换成对象 其中NSNumber类可以将int,float,double,char,bool等 C 中的基本数据类型转换对象 我们将 C 和 OC 中的基本数据类型(值类型)转换成对象(引用类型)的过程,叫做封装.相对应的,也有一个将对象转变成基本数据类型,此过程叫做拆包. 字符串操作: 1.字符串长度 2.字符串的截取 3.字符串比较 "=="表示两个字符串的指针和内容都相同 "xxx isEqualToString:yyy"表示两个字符串内容是否相同 4.根据字符串拿到对应的range 5.判断字符串中是否有XX前缀或XX后缀 6.字符串拼接 note:字符串操作的代码实现在下面. */ //以下为基本数据类型
int a = 5; float b = 4.5; double c = 3.14; char d = 'c'; bool flag = YES; // CGPoint point = {3,4};// CGSize size = {30,47};//宽和高// CGRect rect = {point,size};
//以上注释的3种,通常不以这种方式来编写
CGPoint point = CGPointMake(3, 4); CGSize size = CGSizeMake(30, 47); CGRect rect = CGRectMake(1, 2, 3, 4); NSRange range = NSMakeRange(3, 7);
//转换
NSValue *pointValue = [NSValue valueWithPoint:point]; NSValue *sizeValue = [NSValue valueWithSize:size]; NSValue *rectValue = [NSValue valueWithRect:rect]; NSValue *rangeValue = [NSValue valueWithRange:range]; NSNumber *intNumber = [NSNumber numberWithInt:1]; NSNumber *integerNumber = [NSNumber numberWithInteger:12]; NSNumber *floatNumber = [NSNumber numberWithFloat:12.3]; NSNumber *doubleNumber = [NSNumber numberWithDouble:12.45]; NSNumber *charNumber = [NSNumber numberWithChar:'b']; NSNumber *boolNumber = [NSNumber numberWithBool:YES];
//拆包
CGPoint point1 = [pointValue pointValue]; CGSize size1 = [sizeValue sizeValue]; CGRect rect1 = [rectValue rectValue]; NSRange range1 = [rangeValue rangeValue]; int a1 = [intNumber intValue]; NSInteger a2 = [integerNumber integerValue]; float a3 = [floatNumber floatValue]; double a4 = [doubleNumber doubleValue]; char a5 = [charNumber charValue]; bool a6 = [boolNumber boolValue];
//NSString 和 NSMutableString /*OC中的字符串具有强大的功能,即封装性极强,我们只需要找到对应API(API指的是功能,方法),就可以对字符串做相应的操作.OC中字符串分为不可亦字符串和可变字符串,其中可变字符串是不可变字符串的子类. 在ios开发中,字符串通常用作显示文本,即作为UILable,UITextFeild等一些UIKit框架下控件的显示文本 */ /* NSString 不可变字符串 1.快速初始化
NSString *string1 = @"bokanwisdom";
2.格式化的方式初始化
NSString *string4 = [NSString stringWithFormat:@"%d",3];
note:对于用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串拼接 3.从本地文件中读取字符串
NSString *string8 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; NSString *string9 = [NSString stringWithContentsOfFile:path usedEncoding:&encoding error:&error];
4.从网络中读取一个字符串
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; NSString *string10 = [NSString stringWithContentsOfURL:url encoding:4 error:&error];
//1.初始化一个字符串对象
NSString *string1 = @"bokanwisdom"; NSString *string2 = [NSString stringWithString:@"bokanwisdom"]; NSString *string3 = [[NSString alloc] initWithString:@"bokanwisdom"]; NSString *string4 = [NSString stringWithFormat:@"%d",3];//把整型数字3转换成字符串 NSString *string5 = [NSString stringWithFormat:@"%dbokanwisdom",3]; NSLog(@"string4 = %@",string5);
//对于用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串拼接
NSString *string6 = @"XXX"; NSString *string7 = @"bbb"; NSString *newString = [NSString stringWithFormat:@"%@%@",string6,string7]; NSLog(@"%@",newString);
//在本地文件中读取字符串,并且知道该文件的编码方式
NSString *path = @"/Users/4001/Desktop/test.html"; NSError *error; NSString *string8 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; NSLog(@"%@",string8);
//在本地文件中读取字符串,但不知道该文件的编码方式
NSStringEncoding encoding; NSString *string9 = [NSString stringWithContentsOfFile:path usedEncoding:&encoding error:&error]; NSLog(@"%@,%lu",string9,(unsigned long)encoding);
//从网络文件中读取字符串
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; NSString *string10 = [NSString stringWithContentsOfURL:url encoding:4 error:&error]; NSLog(@"string10 = %@",string10);
//字符串的操作
NSString *string11 = @"当女朋友说“随便”的时候,她的意思其实是:老娘懒得去想,也想不出好的,虽然是让你看着办,但你一定要想出我满意的才行";
//字符串截取
NSString *subStr = [string11 substringToIndex:8];//从0开始到第8个 NSLog(@"subStr = %@",subStr); NSString *subStr1 = [string11 substringFromIndex:8];//从第8个开始 NSLog(@"subStr1 = %@",subStr1); NSString *subStr2 = [string11 substringWithRange:NSMakeRange(8, (string11.length) - 8)];//从第5个开始,截取10个字符 NSLog(@"subStr2 = %@",subStr2);
//字符串的属性 长度 length //字符串比较 如何判断两个字符串是否相等?
if (subStr2 == subStr1) { //内容和指针都相等时,才成立 NSLog(@"subStr1 和 subStr2 相等"); }else{ NSLog(@"subStr1 和 subStr2 不相等"); }
//在实际开发过程中,我们通常只需要比较两个字符串的内容是否相等
if ([subStr1 isEqualToString:subStr2]) { NSLog(@"subStr1 和 subStr2 相等"); }else{ NSLog(@"subStr1 和 subStr2 不相等"); }
//比较字符串大小
NSString *string12 = @"yanshuxin"; NSString *string13 = @"Hello"; NSComparisonResult result = [string12 compare:string13]; switch (result) { case NSOrderedAscending: NSLog(@"string12 < string13"); break; case NSOrderedSame: NSLog(@"string12 = string13"); break; case NSOrderedDescending: NSLog(@"string12 > string13"); break; default: break; }
//根据字符串拿到对应的range
NSRange strRange = [string11 rangeOfString:@"你看"]; NSLog(@"strRange = %@",[NSValue valueWithRange:strRange]); NSRange strRange1 = [string11 rangeOfString:@"你"]; NSLog(@"strRange1 = %@",[NSValue valueWithRange:strRange1]); //找到第一个就不找了
//判断字符串中是否有XX前缀或XX后缀
NSString *string14 = @"www.baidu.com"; if ([string14 hasPrefix:@"http://"]) { NSLog(@"含有此前缀"); }else{ NSLog(@"无此前缀"); } NSString *string15 = @"asdf.jpg"; if ([string15 hasSuffix:@".jpg"] || [string15 hasSuffix:@".png"]) { NSLog(@"含有此后缀"); }
//字符串拼接
NSString *connStr = [@"http://" stringByAppendingString:string14]; NSLog(@"connStr = %@",connStr); NSString *domainStr = @"http://wechat.palm-h.com"; NSString *xxx = @"login"; //http://wechat.palm-h.com/login NSString *string16 = [NSString stringWithFormat:@"%@/%@",domainStr,xxx]; NSLog(@"string16 = %@",string16); NSString *string17 = [domainStr stringByAppendingPathComponent:xxx]; NSLog(@"string17 = %@",string17); //http://web.52pk.com/uploads/141017/30_105806_1_lit.jpg NSString *imgPath = @"http://web.52pk.com/uploads/141017/30_105806_1_lit.jpg"; imgPath = [imgPath lastPathComponent];//获取路径的最后一段 NSLog(@"imgPath = %@",imgPath); path = [path lastPathComponent]; NSLog(@"path = %@",path); NSString *theImageName = @"yanshuxin"; theImageName = [theImageName stringByAppendingPathExtension:@"png"]; NSLog(@"theImageName = %@",theImageName);
//uppercaseString:把所有字母转换为大写 //lowercaseString:把所有字母转换为小写 //capitalizedString:每个单词的首字母转换为大写
NSString *str1 = @"I lovE kongfu"; NSLog(@"%@ \n %@ \n %@",[str1 uppercaseString],[str1 lowercaseString],[str1 capitalizedString]);
//不可变字符串:单个内容替换
stringByReplacingOccurrencesOfString NSString *aa = [theImageName stringByReplacingOccurrencesOfString:@"y" withString:@"Y"]; NSLog(@"%@",aa);
//不可变字符串:指定长度内容替换
stringByReplacingCharactersInRange NSString *aaa = [theImageName stringByReplacingCharactersInRange:NSMakeRange(1, 3) withString:@"ANS"]; NSLog(@"%@",aaa);
//不可变字符串:将原字符串的内容进行分割,分割得到的结果放到一个数组里,作为返回值.
NSString *bb = @"yan,shu,xin"; NSArray *ary = [bb componentsSeparatedByString:@","]; for (int tmp = 0; tmp < 3; tmp++) { NSLog(@"%@",ary[tmp]); }
0 0
- OC学习----可变字符串
- OC--NSMutableString可变字符串
- Snail—OC学习之可变字符串NSMutableString
- OC:可变字符串(Foundation)
- OC可变字符串NSMutableString详解
- OC学习(四)不可变字符串类和可变字符串类
- OC:可变字符串NSMutableString 的一些用法
- OC基础使用(五 NSMutableString 可变字符串)
- OC学习:可变字符串替代:replaceOccurrencesOfString:(NSString *) withString:(NSString *) options: range:方法
- oc不可变字符串和可变字符串相关操作
- OC 不可变字符串和可变字符串的一些用法
- OC不可变字符串和可变字符串(1)
- OC 学习 字符串处理
- [oc学习笔记]字符串
- OC学习--字符串使用
- OC之对不可变字符串、可变字符串、可变数组的操作及OC中字符串的排序
- 【Objective-C】OC中可变字符串(NSMutableString)常用方法
- OC-038.可变字符串NSMutableString创建和方法
- vc工程文件打开dsw不能载入类信息
- jQuery选择器
- Callable和Future线程累计
- Object-C 字符串
- Eclipse 导入web项目后 报 The type javax.servlet.http.HttpServletRequest cannot be resolved.
- OC学习----可变字符串
- 【leetcode】Palindrome Linked List
- Http协议中的各种长度限制总结
- php图形图像处理基础
- ZOJ3453 Doraemon's Sweet Bullet(线段树单点更新+区间更新+区间查询)
- 区别script中的type=”text/javascript”和language=”Javascript”
- android之WakeLock机制浅析
- MVVM指南一:Flickr搜索实例
- ajax 验证用户名是否存在