今天开始正式的接触OC的封装对象,接触了NSString NSArray NSMutableString NSMutableArray 这四个常用对象,也要根据这个对象学会查看
苹果的官方API(话说全英文的看的好辛苦.....)
一 NSString
这个对象,我觉得它比不上java中的String型,居然不能实现字符串的相加 和" = " 赋值,好吧 既然不行那么就看看几个常用的方法,看怎么实现这些功能的
1 初始化方法
– initWithString: – initWithFormat:+ stringWithString: + stringWithFormat:
这没什么好说的,只是注意的是"+方法都是autorelease的 不用手动release;
2 连接字符串
– stringByAppendingFormat:
– stringByAppendingString:
NSString *str1 = [NSString stringWithFormat:@"123"];
NSString *str2 = [NSString stringWithFormat:@"kfs"];
NSString *str3 = [str1 stringByAppendingString:str2];
NSString *str4 = [str1 stringByAppendingFormat:@"%i",100];
NSLog(@"%@,%@",str3,str4);//输出是 123kfs,123100
3剪切字符串
- – substringFromIndex:
- – substringWithRange:
- – substringToIndex:
substringFromIndex 是从指定的字符号码开始剪切例如 "wps" 从1开始剪切 新生成的就是"ps';(包含你指定序号的那个字符)
substringToIndex 是剪切到指定字符为止 包含截止字符 如 "wps 剪切到第2个 就是"wp";
substringWithRange: 就要引入一个结构体 NSRange 看如下代码
- NSString *str1 = [NSString stringWithFormat:@"12345"];
- NSRange ns = NSMakeRange(2, 2);
- NSString *str6 = [str1 substringWithRange:ns];
- NSLog(@"%@",str6);
NSRange 包含两个变量 第一个指定从哪个字符标号开始,第二个指定到多少后结束(经测试,第二个数字加第一个数字一定要小于整个字符串长度,
即不能剪切大于此字符串的长度的子字符串);
4 替换字符串
– stringByReplacingOccurrencesOfString:withString:
- NSString *str1 = [NSString stringWithFormat:@"12345"];
- NSString *str2 = [str1 stringByReplacingOccurrencesOfString:@"23" withString:@"45"];
- NSLog(@"%@",str2);//输出14545
5 比较字符串
– compare:
– hasPrefix:
– hasSuffix:
– isEqualToString:
– hash
compare : 不等-1,相等为0
- NSString *str1 = [NSString stringWithFormat:@"12345"];
- NSString *str2 = [str1 stringByReplacingOccurrencesOfString:@"23" withString:@"45ds"];
- BOOL a = [str1 compare:str2];
- NSLog(@"%d",a);//返回-1
-(BOOL)hasPrefix:nsstring 测试字符串是否以 nsstring 开始
-(BOOL)hasSuffix:nsstring 测试字符串是否以 nsstring 结尾
- NSString *str1 = [NSString stringWithFormat:@"12345"];
- NSString *str2 = [NSString stringWithFormat:@"1545"];
- BOOL a = [str1 hasPrefix:@"18"];
- BOOL b = [str2 hasSuffix:@"45"];
- NSLog(@"%d,%d",a,b);//输出0,1
- NSString *str1 = [NSString stringWithFormat:@"12345"];
- NSString *str2 = [NSString stringWithFormat:@"1545"];
- BOOL a = [str1 isEqualToString:str2];
- NSLog(@"%d",a);
-hash
- NSString *str1 = [NSString stringWithFormat:@"12345"];
- NSUInteger a = [str1 hash];
- NSLog(@"%lu",a);
查看字符串的hash码
5 字符串转换
- – doubleValue
- – floatValue
- – intValue
- – integerValue
- – longLongValue
- – boolValue
二 NSMutableString
1初始化方法
- + stringWithCapacity:
- – initWithCapacity:
- – appendFormat:
- – appendString:
- – deleteCharactersInRange:
- – insertString:atIndex:
- – replaceCharactersInRange:withString:
- – setString:
- NSMutableString *mString= [NSMutableString stringWithCapacity:10];
- NSString *ns = @"kkk";
- [mString appendFormat:@"aaa"];
- NSLog(@"%@",mString);
- [mString appendString:ns];
- NSLog(@"%@",mString);
- [mString deleteCharactersInRange:NSMakeRange(3, 2)];
- NSLog(@"%@",mString);
- [mString insertString:@"bbb" atIndex:2];
- NSLog(@"%@",mString);
- [mString replaceCharactersInRange:NSMakeRange(2, 2) withString:@"ccc"];
- NSLog(@"%@",mString);
- [mString setString:@"123"];
- NSLog(@"%@",mString);
2013-08-08 08:53:34.509 OurClass[443:303] aaa
2013-08-08 08:53:34.511 OurClass[443:303] aaakkk
2013-08-08 08:53:34.512 OurClass[443:303] aaak
2013-08-08 08:53:34.512 OurClass[443:303] aabbbak
2013-08-08 08:53:34.512 OurClass[443:303] aacccbak
2013-08-08 08:53:34.513 OurClass[443:303] 123
三 NSArray
1 创建 初始化方法
- + array
- + arrayWithArray:
- + arrayWithContentsOfFile:
- + arrayWithContentsOfURL:
- + arrayWithObject:
- + arrayWithObjects:
- + arrayWithObjects:count:
- – initWithArray:
- – initWithArray:copyItems:
- – initWithContentsOfFile:
- – initWithContentsOfURL:
- – initWithObjects:
- – initWithObjects:count:
- + arrayWithObject:
- + arrayWithObjects:
2 查询
- – containsObject:
- – count
- – getObjects:range:
- – lastObject
- – objectAtIndex:
- – indexOfObject:
- – indexOfObject:inRange:
– makeObjectsPerformSelector:
这个就是OC中我觉得Array比java中的list好的一点- NSArray *nsa = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
- [nsa makeObjectsPerformSelector:@selector(length)];
5 对比
- – firstObjectCommonWithArray:
- – isEqualToArray:
Creating and Initializing a Mutable Array
- + arrayWithCapacity:
- – initWithCapacity:
Adding Objects
- – addObject:
- – addObjectsFromArray:
- – insertObject:atIndex:
- – insertObjects:atIndexes:
Removing Objects
- – removeAllObjects
- – removeLastObject
- – removeObject:
- – removeObject:inRange:
- – removeObjectAtIndex:
- – removeObjectsAtIndexes:
- – removeObjectIdenticalTo:
- – removeObjectIdenticalTo:inRange:
- – removeObjectsInArray:
- – removeObjectsInRange:
Replacing Objects
- – replaceObjectAtIndex:withObject:
- – setObject:atIndexedSubscript:
- – replaceObjectsAtIndexes:withObjects:
- – replaceObjectsInRange:withObjectsFromArray:range:
- – replaceObjectsInRange:withObjectsFromArray:
- – setArray:
Filtering Content
- – filterUsingPredicate:
Rearranging Content
- – exchangeObjectAtIndex:withObjectAtIndex:
- – sortUsingDescriptors:
- – sortUsingComparator:
- – sortWithOptions:usingComparator:
- – sortUsingFunction:context:
- – sortUsingSelector:
- + arrayWithCapacity:
- – addObject:
- – insertObject:atIndex:
- – removeAllObjects
- – removeLastObject
- – removeObject:
- – replaceObjectAtIndex:withObject: