学习OC都知道,OC比较好的地方就是封装了很多方法,供开发者直接调用,这是非常方便的。很多方法在系统中都实现了,我们只要直接调用就行了。今天主要是说明字符串对象的一些方法的使用。
下面直接上代码:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // //创建NSString类型的对象 // //使用初始化方法initWithFormat:根据一定的字符串格式来初始化字符串对象,将格式串中的内容写入到字符串对象空间内 // NSString *str = [[NSString alloc] initWithFormat:@"iPhone%d%@", a, @"S"]; // // //使用便利构造器stringWithFormat:方法来快速创建对象,内部进行alloc以及初始化操作,内部通过initWithFormat初始化方法来进行初始化 // NSString *str1 = [NSString stringWithFormat:@"lanou%@", @"henan"]; // // //将c语言的字符串转为OC的字符串对象 // //初始化方法 // NSString *str21 = [[NSString alloc] initWithUTF8String:"ccc"]; // //便利构造器方法 // NSString *str2 = [NSString stringWithUTF8String:"abc"]; // NSLog(@"%@", str); // NSLog(@"%lu", (unsigned long)[str1 length]); // NSLog(@"%@,%@", str21, str2); //1.创建一个新的字符串对象,存储“http://www.LANOU3g.com,lanouhenan” NSString *str = [[NSString alloc] initWithFormat:@"http://www.LANOU3g.com,lanouhenan"]; //2.求字符串str的长度 NSUInteger length = [str length]; NSLog(@"%lu", length); //3.判断字符串是否以指定字符串开始或结束 //判断一个网址是否是以http://开头,是否是以.com 结尾。 BOOL isBegin = [str hasPrefix:@"www"]; NSLog(@"%d", isBegin); //判断是否以.com结尾。 BOOL isEnd = [str hasSuffix:@".com"]; NSLog(@"%d", isEnd); //4.搜索一个指定字符串的范围 //经常用来判断指定的字符串在不在str中。 //只需根据返回的range的length来判断即可,如果length为0,说明不在str中,如果不为0,则存在。 NSRange range = [str rangeOfString:@"lanou"]; // NSLog(@"location:%lu, range:%lu", range.location, range.length); //将一个结构体类型的变量转化为字符串 NSLog(@"%@", NSStringFromRange(range)); //5.字符串截取(获取子字符串),分割字符串 //获取子串.com NSString *subStr1 = [str substringFromIndex:18]; NSLog(@"%@", subStr1); //获取子串http:// NSString *subStr3 = [str substringToIndex:7]; NSLog(@"%@", subStr3); //获取子串lanou // NSRange range2 = {11, 5}; //NSMakeRange 用来快速创建NSRange变量({})用来赋初值 NSString *subStr2 = [str substringWithRange:NSMakeRange(11, 5)]; NSLog(@"%@", subStr2); //6.拼接字符串 //拼接上henan NSString *newStr = [str stringByAppendingFormat:@"%@", @"henan"]; NSLog(@"%@", newStr); //7.替换字符串 //将ou替换成xiang NSString *replaceString = [str stringByReplacingOccurrencesOfString:@"ou" withString:@"xiang"]; NSLog(@"%@", replaceString); //8.字符串比较 NSComparisonResult result = [@"aa" compare:@"bb"]; NSLog(@"%ld", result); //9.字符串和数值类型的转换 //将@"5"转为整数 //如果字符串前面是空格,则会忽略掉,把空格后面的数字转为整数,如果出现过其它字符之后,又出现了空格,则不会忽略掉 NSInteger value1 = [@" 5a2" integerValue]; NSLog(@"%ld", value1); //10.大小写转换操作。 //(1)全部转化为大写 NSString *upperString = [str uppercaseString]; NSLog(@"%@", upperString); //(2)全部转化为小写 NSString *lowerString = [str lowercaseString]; NSLog(@"%@", lowerString); //(3)每个单词的首字母转化为大写,其余小写 //如何区分是不同的单词 //除了52个大小写字母,使用其它的字符来进行间隔,都会识别为不同的单词 NSString *cap = [str capitalizedString]; NSLog(@"%@", cap); //对于NSString创建的对象,都是不可变的字符串,不管对该对象做拼接、分割大小写转换、替换、数字转换等操作,都是对该对象的副本进行操作,不会对原字符串做任何的修改。(返回一个新的字符串) //如果想对原字符串进行修改,就要使用NSString的一个子类NSMutableString来创建对象,进行操作,NSMutableString相比于NSString类只是添加了增删改的方法。 } return 0; }
这是一个完整的OC代码,可以拷贝到工程中直接运行。大家可以看到,main函数中上面的一部分注释掉了,那是NSString的一些初始化的方法和一个便利构造器。
下面的几个方法是一些最长用的方法,基本上其他的都不用,如果有些童鞋有需要,可以查看官方的API文档查看更多的方法。