您的位置:首页 > 职场人生

黑马程序员----OC学习NSString使用方法

2015-07-03 17:55 543 查看
在Foundation框架中,提供了NNString类,用于处理字符串对象。在C语言中字符串在一对引号中表示。OC是C语言的一种延展,换句话说,OC语言是建立在C语言的基础之上(C的基础之上添加了面向对象的内容,smalltalk语言)。因此,为了区别两者的字符串,OC语言的字符串必须以@开头,引号当中则是字符串的内容,如@”abc“.此外,NSString对象,一旦被创建,就不可以在进行修改。如若需要一个可以更改的字符串对象,需要创建NSMutableString实例。

NSString *str1 = @"Car";
NSString *str2 = @"Tree";

//全部转为大写
NSLog(@"%@",[str1 uppercaseString]);

//全部转为小写
NSLog(@"%@",[str1 lowercaseString]);

//首字母大写
NSLog(@"%@",[str1 capitalizedString]);

//比较两个字符串内容是否相同
BOOL b =[str1 isEqualToString:str2];

//两个字符串内容比较
//NSOrderedAscending 右边 > 左边
//NSOrderedSame 内容相同
//NSOrderedDescending 左边 > 右边
NSComparisonResult result = [str1 compare:str2];
if (result == NSOrderedAscending) {
NSLog(@"右边 > 左边");
}else if(result == NSOrderedSame){
NSLog(@"内容相同");
}else if (result == NSOrderedDescending){
NSLog(@"左边 > 右边");
}

//忽略大小写进行比较,返回值与compare一样
result = [str1 caseInsensitiveCompare:str2];
if (result == NSOrderedAscending) {
NSLog(@"右边 > 左边");
}else if(result == NSOrderedSame){
NSLog(@"内容相同");
}else if (result == NSOrderedDescending){
NSLog(@"左边 > 右边");
}

//判断字符串是否以指定字符串开头
[str1 hasPrefix:@"aaa"];
//判断字符串是否以指定字符串结尾
[str1 hasSuffix:@"aaa"];

//判断字符串是否包含指定字符串,返回位置和长度
NSRange range = [@"123456" rangeOfString:@"456"];
NSLog(@"%@", NSStringFromRange(range));

//反向搜索
range = [@"123456456qweasasd456" rangeOfString:@"456" options:NSBackwardsSearch];
NSLog(@"%@",NSStringFromRange(range));

//指定范围进行搜索
range = NSMakeRange(0, 9);
range = [@"123456456qweasasd456" rangeOfString:@"456" options:NSBackwardsSearch range:range];
NSLog(@"%@",NSStringFromRange(range));
NSString *str = @"123456789";
NSLog(@"%@",[str substringFromIndex:3]);
NSLog(@"%@",[str substringToIndex:6]);
NSLog(@"%@",[str substringWithRange:NSMakeRange(3, 3)]);

//用指定字符串分割字符串,返回一个数组
NSArray *array = [@"1,2,3,4,5,6" componentsSeparatedByString:@","];
NSLog(@"%@",array);

//将数组中的字符串组合成一个文件路径
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

//拓展名出来
//获取拓展名,不带.
NSString *str2 = @"Users/CentralPerk/Desktop/test.txt";
NSLog(@"%@",[str2 pathExtension]);
//添加拓展名,不需要带.
NSLog(@"%@",[str2 stringByAppendingPathExtension:@"mp3"]);
//删除拓展名,带.一块删除
NSLog(@"%@",[str2 stringByDeletingPathExtension]);

//字符串转为 int double float
NSString *str3 = @"123";
NSLog(@"%i",[str3 intValue]);
NSLog(@"%zi",[str3 length]);

//取出指定位置的字符
unichar c = [str3 characterAtIndex:2];
NSLog(@"%c",c);

//转为C语言的字符串
const char *s = [str3 UTF8String];
NSLog(@"%s",s);

// trim
NSString *str = @" abcd ";
NSString *str2 = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"%@",str);
NSLog(@"%@",str2);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NSString