学习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文档查看更多的方法。
转载于:https://blog.51cto.com/winann/1416964