学习OC都知道,OC比较好的地方就是封装了很多方法,供开发者直接调用,这是非常方便的。很多方法在系统中都实现了,我们只要直接调用就行了。今天主要是说明字符串对象的一些方法的使用。

下面直接上代码:

#import 

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文档查看更多的方法。