NSString和NSMutableString

1.定义一个char类型的字符串,可以使用%s来进行输出

char *p = "hello word";
 NSLog(@"%s",p);

2.SString 可以用来声明一个NSString类型的字符串对象,使用%@进行输出

NSString *myStr = @"NSString test";
NSLog(@"%@",myStr);

3.字符串的声明方法

  3.1用一个来创建另外一个字符串

NSString *myStr2 = [[[NSString alloc] initWithString:myStr] autorelease];
NSLog(@"用原来的mystr创建的新字符串是:%@",myStr2);

 3.2通过传入一个c语言字符串的首字符地址,用c语言的字符串创建oc的字符串对象

 NSString *myStr3 = [[[NSString alloc] initWithUTF8String:"here is a c string"] autorelease];
 NSLog(@"用c语言字符获得到的字符串的首地址,从而建立的NSString类型的字符串:%@",myStr3);

 3.3使用格式符创建字符串

NSString *myStr4 = [[[NSString alloc] initWithFormat:@"I was ceate by format,the format is %d %c" ,5,'A'] autorelease];
NSLog(@"这是一个使用格式符创建的字符串:%@",myStr4);

4.三种创建临时字符串的方法,临时字符串是自动释放的,在开发中很难确认它是在什么时候释放的。

   4.1c语言的字符串转换成oc字符串对象

NSString *temporaryStr1 = [NSString stringWithUTF8String:"here is a temporary string"];
NSLog(@"这是我的使用stringWithUTF8String创建的临时字符串:%@",temporaryStr1);

 4.2使用格式符创建一个临时字符串

NSString *temporaryStr2 = [NSString stringWithFormat:@"here is a temporary string %d %c %@",1,'R',@"hello"];
NSLog(@"这是我的使用stringWithFormat创建的临时字符串:%@",temporaryStr2);

 4.3使用一个字符串创建一个临时字符串

NSString *temporaryStr3 = [NSString stringWithString:myStr];
NSLog(@"这是我的使用stringWithString创建的临时字符串:%@",temporaryStr3);

5.两个字符串关系的判断

  5.1判断两个字符串是否相等

BOOL ret = [temporaryStr3 isEqualToString:myStr];
BOOL ret1 = [temporaryStr1 isEqualToString:temporaryStr3];
NSLog(@"temporaryStr3 和 myStr的相等与否的关系是:%@",ret == 1?@"相等":@"不相等");
NSLog(@"temporaryStr1 和 temporaryStr3的相等与否的关系是:%@",ret1 == 1?@"相等":@"不相等");

 5.2比较两个字符串的大小:

当两个字符串相等时显示:NSOrderedSame 当大于目标字符串时显示:NSOrderedDescending 当小雨目标字符串时显示:NSOrderedDescending

比较是返回的结果对象是NSComparisonResult:

if(ret2 == NSOrderedSame){
     NSLog(@"temporaryStr1 与 temporaryStr3 是相等的");
}else if(ret2 == NSOrderedAscending){
     NSLog(@"temporaryStr1 < temporaryStr3");
}else if(ret2 == NSOrderedDescending){
     NSLog(@"temporaryStr1 > temporaryStr3");
}else{
     NSLog(@"这个事情不可能发生啊,为什么?");
 }

6.从一个字符串中查找它的子字符串

NSString * str = @"I am a poor man";
NSString * subStr = @"man";
// 在str字符串当中查找它的子字符串的位置
// NSRange由两个长整形(NSUInteger)组成,一个是位置(location),一个是长度(length)
NSRange range1 = [str rangeOfString:subStr];
//NSLog(@"Range is:%@",NSStringFromRange(range1));
NSLog(@"substr的第一个字符在str中的位置是:%lu ,substr的长度是:%lu",range1.location,range1.length);

7.字符串的提取(从父字符串中提取一部分出来,生成一个新的字符串)

NSString *parentStr = @"123456789";
// 从首字符开始向后截取6个字符(不包括第6个,因为是index是从0开始的)生成一个新字符串,返回字符串地址
NSString *subStr1 = [parentStr substringToIndex:6];
NSLog(@"substringToIndex新生成的字符串是:%@",subStr1);
// 从第6个字符开始(包括第6个)到最后一个字符,生成新字符串,返回字符串地址
NSString *subStr2 = [parentStr substringFromIndex:3];
NSLog(@"substringFromIndex新生成的字符串是:%@",subStr2);
// 从第3个位置(位置从0开始计算)到最后一个字符,生成新字符串,返回字符串地址
// 从第3个位置开始,截取5个字符;
//NSRange range = {3,5};
NSString *subStr3 = [parentStr substringWithRange:NSMakeRange(3, 5)];
NSLog(@"substringWithRange新生成的字符串是:%@",subStr3);

8.可变字符串的操作,在可变字符串中NSString的所有操作,NSMutableString都可以实现,并且NSMutableString有自己的增删改查方法

NSMutableString的声明的时候,@“abc”的方法是不行的,@“abc”是创建一个不可变的字符串,无法将一个不可变的字符串赋值给一个不可变的字符串的指针

   8.1.可以使用初始化,并且向字符串设值的方式进行对字符串赋值,如果再次设值时会替换原来字符串的内容

NSMutableString * mutaleStr1 = [[NSMutableString alloc] init];
[mutaleStr1 setString:@"我好开心啊"];
NSLog(@"可以使用初始化,并且向字符串设值的方式进行对字符串赋值 例如:%@",mutaleStr1);

 8.2想原来的字符串中追加字符串

[mutaleStr1 appendString:@",哈哈哈"];
NSLog(@"在原来字符串的末尾新加了一部分字符串 例如:%@",mutaleStr1);

 8.3用格式符追加字符串,可以追加任意基本类型的字符串

[mutaleStr1 appendFormat:@" my age is %d",28];
NSLog(@"在原来字符串的末尾使用格式符追加了一部分字符串 例如:%@",mutaleStr1);

 8.4在原来的字符串中间任意位置插入字符,在atIndex的地方插入一个字符

[mutaleStr1 insertString:@"------" atIndex:10];
NSLog(@"在原来字符串的中间插入任意字符 例如:%@",mutaleStr1);

 8.5删除字符串的一部分,删除range范围之内的字符

[mutaleStr1 deleteCharactersInRange:NSMakeRange(0, 10)];
NSLog(@"在原来的字符串上删除一部分字符 例如:%@",mutaleStr1);

   8.6替换一部分字符,将range范围内的字符替换成任意的字符

[mutaleStr1 replaceCharactersInRange:NSMakeRange(0, 6) withString:@"xxxxxxxxx "];
NSLog(@"在原来的字符串上替换一部分字符 例如:%@",mutaleStr1);

  

 

posted @ 2015-06-03 23:38  枫林一色秋  阅读(205)  评论(0编辑  收藏  举报