Foundation框架中NSString,NSMutableString,NSArray,NSMutablieArray,NSDictionary,NSMutableDictionar的常用方法介绍

NSString的创建

1,NSString的创建分为类方法与对象方法

类方法创建字符串

NSString *str1 = [NSString stringWithFormat:@"xxx"];

对象方法创建字符串

NSString *str2 = [[NSString alloc] initWithString:@"xxxxx"];

简化创建方法

NSString *str3 = @"xxxxxxx";

2,把字符串写入文件的方法

                                                                 文件地址                                            是否具有原子性       编码方式                错误对象地址
     BOOL isYes =  [str3 writeToFile:@"/Users/zhangchaofan/Desktop/歌词.txt" atomically:YES encoding:NSUTF8StringEncoding error:&err];

 把字符串从文件读出的方法

     文件的读取方法是个类方法,返回值为字符串类型.
     NSString *readstr = [NSString stringWithContentsOfFile:@"/Users/zhangchaofan/Desktop/歌词.txt"  encoding:NSUTF8StringEncoding error:&err];

NSURL的基本使用

NSURL用来创建一个对象来存放地址

创建一个NSURL对象,并把一个网址包装成NSURL对象的方法

 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

 这个方法也可以包装本地地址

 NSURL *url1 = [NSURL URLWithString:@"file:///Users/apple/Desktop/love.txt"];

 (fileURLWithPath:) 这个方法只能包装本地地址

  NSURL *url2 = [NSURL fileURLWithPath:@"/Users/zhangchaofan/Desktop/love1.txt"];

把包装的地址传入文件写入方法中

NSString比较大小

        字符串比较的原理,取出每个字符,逐个比较ASCII的大小,遇到第一个不相同的字符既可以比出大小,


        字符串比较大小的第一种方法  compare,它的返回值是定义为NSComparisonResult的枚举,

        这个枚举的结构为{

        NSOrederedAscending(上升的) NSOrederedsame(相同的) NSOrederedDescending(下行的)

        }

        可以使用这个枚举来显示字符串比较大小的结果

        方法compare 比较大小是默认区分大小写的,小写字母的ASCII值比大写字母大,

        如果不想区分大小写 再方法后面加 options(选择) NSCaseInsensitiveSearch 选项 CaseInsensitive(不分大小写),Search(搜寻)

        NSComparisonResult result = [str compare:str1 options:NSCaseInsensitiveSearch];  

       字符串比较大小的第一种方法,是直接比较是否相等

       OC提供了一个专门比较字符串是否相等的方法:isEqualToString,返回值为BOOL类型, Equal(平等的)

       [str isEqualToString:str1]

NSString检查前后词缀的方法

BOOL hasPrefix:(NSString *) 这是一个检查字符串前缀是否有所要求的字符串,返回值为BOOL类型.

BOOL hasSuffix:(NSString *) 这是一个检查字符串后缀是否有所要求的字符串,返回值为BOOL类型.

NSRange的用法

NSRange是Foundation框架中一个常见的结构体,它的内部是由location(位置),length(长度)构成,通常用来表示范围.

赋值方式:  NSRange r1 = {3,5};         NSRange = {.length = 3},(location = 0,length = 3)

OC特有的快速赋值方法:NSMakeRange(3,5);

OC特有的快速输出方法:NSStringFromRange(r1);

NSString的截取与替换

截取字符串常用的三个方法

1,从XX位置开始到末尾为止截取字符串,方法的返回值是个字符串;
    NSString *substr = [str substringFromIndex:5];
2,从开头开始到XX位置为止截取,不包含该位置
    NSString *substr1 = [str substringToIndex:4];
3,定义一个NSRange,截取NSRange范围的字符串
    NSRange r1 = NSMakeRange(11, 6);

    NSString *substr2 = [str substringWithRange:r1];

字符串的替换方法

string By Replacing(替换) Occurrences(发生) Of String:@"老字符串" withString:@"新字符串"
 例; NSString *str1 = [str stringByReplacingOccurrencesOfString:@"*" withString:@"/"];

NSString中的类型转换方法

字符串是可以和基本数据,数据类型的转换只会识别数字,正负号和小数点,接触到第一个非数字,正负号和小数点就会停止转换

@"a100"就无法转换,@"10db20"转换结果为10

        NSString *str = @"100a";

        int num = [str intValue];

        NSString *str1 = @"10.2";

        float f = [str1 floatValue];

c语言字符串转化为OC字符串的方法,转化方法是一个类方法

        char *s = "八百里分麾下炙,九十弦翻塞外声";

        NSString *str2 =  [NSString stringWithUTF8String:s];

oc语言字符串转换成C语言的字符串(对象方法)

        const char *s1 = [str2 UTF8String];

因为方法的返回值是一个const类型的c语言字符串,所以要带const

获取字符串每个字符的方法

-(unichar) characterAtIndex:(NSUInteger)index这是一个根据下标获取字符串中字符的方法(对象方法)

去掉字符串头尾的方法

+ (id)whitespaceCharacterSet; 去掉头尾空格

+ (id)lowercaseLetterCharacterSet;  去掉头尾的小写字母

+ (id)uppercaseLetterCharacterSet; 去掉头尾的大写字母

+ (id)characterSetWithCharactersInString:(NSString *)aString;  去掉头尾的指定字符串

调用类NSCharacterSet中的类方法,再通过类NSString中的对象方法stringByTrimmingCharactersInSet:来实现

去掉头尾空格

例:去掉头尾空格

        NSCharacterSet *set = [NSCharacterSet whitespaceCharacterSet];

        NSString *str1 = [str stringByTrimmingCharactersInSet:set];

去掉头尾小写字母

        NSCharacterSet *set1 = [NSCharacterSet lowercaseLetterCharacterSet];

        NSString *str2 = [str1 stringByTrimmingCharactersInSet:set1];

去掉头尾的大写字母

        NSCharacterSet *set2 = [NSCharacterSet uppercaseLetterCharacterSet];

        NSString *str3 = [str2 stringByTrimmingCharactersInSet:set2];

去掉头尾指定的字符串

        NSCharacterSet *set3 = [NSCharacterSet characterSetWithCharactersInString:@"123"];

        NSString  *str4 =  [str3 stringByTrimmingCharactersInSet:set3];

NSMutableString的基本使用

1,NSMutableString与NSString的区别
   NSString创建的字符串的内容,内存大小都是固定的,不能改变

  而NSMutableString的内容可以被修改,内存大小随着内容自动调整

  NSMutableString继承NSString,拥有NSString的所有方法

  NSMutableString *str1 = [NSMutableString string]; 创建一个空的字符串 

  添加字符串的方法
        [str1 appendString:@"xxx"];

可变类型一般要掌握,增,删,改,查 四个方面的方法

1,增
        方法-,直接增加

        [str appendString:@"abc,"];

        方法二,增加带格式的字符串

        int a = 10;

        [str appendFormat:@"a = %d",a];

        方法三,在指定位置插入字符串

        [str insertString:@"XXX" atIndex:3];

2,删
        方法一,删除指定范围中的字符串

        [str deleteCharactersInRange:NSMakeRange(3, 3)];

3,改
        把指定范围内的内容用其他字符串替换,

        当给定的内容大于指定的范围的话,以内容为准

        [str replaceCharactersInRange:NSMakeRange(4, 1) withString:@"int num"];

4,查
        查找字符串的范围

        NSRange r1 = [str rangeOfString:@"num"];

NSMutableString中有一个string的方法,可以直接覆盖掉字符串的内容

        str.string = @"1111";

易犯的错误

        类型错误,一边是NSMutableString类型,一边是NSString类型

        NSMutableString *str2 = @"abc";

NSArray的基本使用


 NSArray的创建

 1,类方法创建

    i,创建一个空数组

    NSArray *arr = [NSArray array];因为NSArray不可变,所以创建的空数组无意义

   ii,创建有一个元素的数组(元素只能为OC对象)

   NSArray *arr1 = [NSArray arrayWithObject:@"one"];

   iii,创建有多个元素的数组

   NSArray *arr2 = [NSArray arrayWithObjects:@"1",@"two",@"2", nil];

   iiio,使用一个已经存在的数组创建一个新数组

   NSArray *arr3 = [NSArray arrayWithArray:arr2]

   2,对象方法创建数组

   怎样才能存储一个null?

   nil代表数组结束,所以使用 [NSNULL null]

   NSArray *arr4 = [[NSArray alloc] initWithObjects:@"one",@"two",[NSNull null],@"three",nil];

  3,创建数组的简写

        NSArray *arr1 = @[@"1",@"2",@"3",@"4"];

  4,计算数组的长度

        NSUInteger len = arr1.count;

  5,判断数组是否包含指定元素

        BOOL isYes = [arr1 containsObject:@"3"];

        if (isYes) {

            NSLog(@"该数组包含");

        }else{

            NSLog(@"该数组不包含");

        }
  6,根据下标输出数组元素

        NSString *str = [arr objectAtIndex:2];

  7,根据数组元素输出下标

        NSInteger num = [arr indexOfObject:@"one"]

数组遍历有三种方法

 1,下标法

        for (int i = 0; i < arr.count; i++) {

            NSLog(@"%d------%@",i,arr[i]);

        }

 2,快速枚举法

        for (id obj in arr) {

            NSLog(@"%@",obj);

        }

 3,block遍历方法

        [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

            id obj 是数组元素

            NSInteger idx是数组下标

            BOOL *stop是控制遍历是否停止,当stop指向的地址为YES时,停止遍历.为NO时,继续遍历

            if (idx == 2) {

                *stop = YES;

            }else{

                NSLog(@"%ld------%@",idx,obj);

            }

        }];

数组写入文件的方法

BOOL isYes = [arr writeToFile:@"/Users/zhangchaofan/Desktop/arr.plist" atomically:YES];

if (isYes) {

                NSLog(@"写入成功");

}

数组从文件中读取

        NSArray *arr1 = [NSArray arrayWithContentsOfFile:@"/Users/zhangchaofan/Desktop/arr.plist"];

 数组与字符串之间的关系:

 1,把数组组合成字符串

        把数组用空字符串连接起来

        NSString *str = [arr componentsJoinedByString:@""];

2.把字符串拆分成数组

        NSString *str1 = @"oneoneone";

        把字符串用n分割为数组

        NSArray *arr1 = [str1 componentsSeparatedByString:@"n"];

NSMutableArray的基本用法

NSMutableArray是可变的,能狗修改,继承NSArray,可以使用NSArray里的方法

        1,NSMutable的创建

        i,类方法创建

        NSMutableArray *arr1 = [NSMutableArray array];建立一个空数组

        NSMutableArray *arr2 = [NSMutableArray arrayWithCapacity:3];指定长度为3的数组(可更改);

        NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"少林",@"万花",@"天策",@"纯阳",@"七秀", nil]

        ii,对象方法创建

        NSMutableArray *arr3 = [[NSMutableArray alloc] initWithArray:arr];

        NSMutableArray *arr4 = [[NSMutableArray alloc] initWithObjects:@"one",@"two",@"three", nil];

2,对数组,增,删,改,查的方法

        i,增

        1,添加元素

        [arr1 addObject:@1];

        2,再指定位置添加元素

        [arr1 insertObject:@"one" atIndex:1];

        ii,删

        1,删除元素

        [arr4 removeObject:@"one"];

        2,删除最后一个元素

        [arr4 removeLastObject];

        3,删除所有元素

        [arr4 removeAllObjects];

        iii,修改元素

        NSMutableArray *arr5 = [NSMutableArray arrayWithObjects:@"abc",@"bbc",@"cbc", nil];

        [arr5 replaceObjectAtIndex:1 withObject:@"bbb"];

        arr5[2] = @"xxx";

        判断元素是否存在

        BOOL isYes = [arr5 containsObject:@"bbc"];

        if (isYes) {

            NSLog(@"数组有此元素");

        }else{

            NSLog(@"数组无此元素");

        }

        交换元素

        [arr5 exchangeObjectAtIndex:0 withObjectAtIndex:arr5.count-1];

NSDictionary的基本使用

NSDictionary字典也是一个集合,但是是通过key(键)- value(值)成对出现的,键与值组成一组,称为一个元素.

        NSDictionary的创建

        1,类方法创建

       创建一个空字典

        NSDictionary *dic = [NSDictionary dictionary];//NSDictionary不能改变,所以创建空字典没有意义

        创建字典并给一组元素

        NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"zhangsan" forKey:@"zs"];

        创建多个元素

        NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:@[@"shaolin",@"chunyan",@"wanhua"] forKeys:@[@"sl",@"cy",@"wh"]];

        NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3", nil];

       2,对象方法创建

        NSDictionary *dic4 = [[NSDictionary alloc] initWithObjectsAndKeys:@"v1",@"k1",@"v1",@"k2", nil];

        注意:1,不管是key值还是value的值都必须是对象类型,不能是基本数据类型

                2,key的值是不能重复的,value的值可以重复

                3,

                4,可以通过key的值快速获取value的值

        快速创建

        NSDictionary *dict = @{@"k1":@"v1",@"k2":@"v2",@"k3":@"v2"};
        
        1,获取字典的长度

        NSLog(@"%ld",dict.count);

        2,根据key值来获取value的值

        NSString *str = [dict objectForKey:@"k3"];

        3,遍历

        快速枚举方法

        for (id obj in dict) {

            NSLog(@"%@--%@",obj,[dict objectForKey:obj]);

        }
        block方法

        [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

            if ([key isEqualToString:@"k1"]){

                *stop = YES;

            }else{

                NSLog(@"key = %@,value = %@",key,obj);

            }

        }];

        检查字典中是否包含指定key值

        先把说有key值组成数组

        NSArray *keys = [dict allKeys];

        再检查数组中是否有指定元素

        if ([keys containsObject:@"k5"]) {

            NSLog(@"存在");

        }else{

            NSLog(@"不存在");

        }


简写创建NSDictionary

        NSDictionary *dic = @{@"k1":@"v1",@"k2":@"v2",@"k3":@"v3"};

        简写根据key值获取value的值  格式: 字典名[@"key名"]

        NSString *str = dic[@"k1"];

        把字典写入文件

       BOOL isYes = [dic writeToFile:@"/Users/zhangchaofan/Desktop/dict.plist" atomically:YES];

        if (isYes) {

           NSLog(@"写入成功");

        }

        读取字典

        NSDictionary *dic1 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/zhangchaofan/Desktop/dict.plist"];

NSMutableDictionary的基本使用

创建对象

        1,类方法创建

        NSMutableDictionary *dic = [NSMutableDictionary dictionary];创建空方法

        NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3", nil];

        2,对象方法创建

        NSMutableDictionary *dic2 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"wanger",@"we",@"zhangsan",@"zs",@"lisi",@"ls", nil];

增,删,改,查

        增

        [dic setObject:@"v1" forKey:@"k1"];

        [dic setObject:@"v2" forKey:@"k2"];

        删

        [dic1 removeObjectForKey:@"k2"];

        [dic1 removeAllObjects];

        改

        [dic setObject:@"one" forKey:@"k1"];

        修改方法的简写

        dic[@"k2"] = @"two";

        添加元素也可以用简写;

        dic[@"k3"] = @"three";




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NSString类是iOS开发非常常用的字符串类,其substringFromIndex、substringWithRange和substringToIndex是NSString的三个常用方法,用于截取字符串的一部分。下面分别介绍它们的使用方法。 1. substringFromIndex方法方法用于截取字符串从指定位置到字符串结尾的所有字符,返回截取后的字符串。它的方法签名如下: ``` - (NSString *)substringFromIndex:(NSUInteger)from; ``` 其,from是一个NSUInteger类型的参数,表示要截取的起始位置,从0开始计数。 示例代码: ``` NSString *str = @"Hello World"; NSString *subStr = [str substringFromIndex:6]; NSLog(@"%@", subStr); // 输出:"World" ``` 2. substringWithRange方法方法用于截取字符串从指定范围内的所有字符,返回截取后的字符串。它的方法签名如下: ``` - (NSString *)substringWithRange:(NSRange)range; ``` 其,range是一个NSRange类型的结构体,用来指定要截取的字符串的范围。 示例代码: ``` NSString *str = @"Hello World"; NSRange range = NSMakeRange(6, 5); NSString *subStr = [str substringWithRange:range]; NSLog(@"%@", subStr); // 输出:"World" ``` 3. substringToIndex方法方法用于截取字符串从字符串开头到指定位置的所有字符,返回截取后的字符串。它的方法签名如下: ``` - (NSString *)substringToIndex:(NSUInteger)to; ``` 其,to是一个NSUInteger类型的参数,表示要截取的结束位置,从0开始计数。 示例代码: ``` NSString *str = @"Hello World"; NSString *subStr = [str substringToIndex:5]; NSLog(@"%@", subStr); // 输出:"Hello" ``` 以上就是NSStringsubstringFromIndex、substringWithRange和substringToIndex方法的使用方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值