zoukankan      html  css  js  c++  java
  • Foundation--NSString , array and Dictionary

    一,NSString的创建 

      NSString*str=@" a string ";//直接创建一个字符串常量,这样创建出来的字符串不需要释放内存 

        NSLog(@"%@",str ); 

        NSString *str2=[[NSString alloc]init]; 

        str2=@"a string two"; 

        NSLog(@"%@",str2);

        [str2 release]; 

        NSString *str3=[[NSStringalloc]initWithString:@"hello"]; 

        NSLog(@"%@",str3); 

        [str3 release]; 

        NSString *str4=[[NSStringalloc]initWithUTF8String:"utf8string"];//C 语言类型的字符串 

        NSLog(@"%@",str4); 

        [str4 release]; 

        NSString *str5=[[NSStringalloc]initWithFormat:@"int=%i, float=%.2f",3,4.5f]; 

        NSLog(@"%@",str5); 

        [str5 release]; 

        str5=[NSStringstringWithFormat:@"paradigm=%i",5];//静态方法不需要释放内存

        NSLog(@"%@",str5);

       NSString *str5;

        NSString *path=@"/Users/lanou/Desktop/a.txt";

        NSError *error;

        str5=[NSStringstringWithContentsOfFile:path  encoding:NSUTF8StringEncodingerror:&error];//读取文件内容

        if (error==nil) {

            NSLog(@"%@ ",str5  );

        }

        NSURL *url=[NSURLURLWithString:@"file:///Users/lanou/Desktop/a.txt"];    

        str5=[NSStringstringWithContentsOfURL:url  encoding:NSUTF8StringEncodingerror:&error];//读取文件内容

        if (error==nil) {

            NSLog(@"%@ ",str5);

        }

     NSError * error;

        NSURL *url=[NSURLURLWithString:@"http://www.baidu.com"];//获取网页文件内容

       NSString* str5=[NSStringstringWithContentsOfURL:url encoding:NSUTF8StringEncodingerror:&error];

        if (error==nil) {

             NSLog(@"%@",str5);

        }

        else{

            NSLog(@"%@error",error);

        }

     

    ///字符串写入文件并读取出来

    void stringExport()

    {

        NSString *path=@"/Users/lanou/Desktop/a.txt";

        NSString *str=@"write to file";

        NSError *error;

        [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];,如果文件不存在将创建文件,如果文件路径不存在就会报错.

        if (error) {

            NSLog(@"error %@",error);

        }

        else

        {

            NSLog(@"successifully");

            NSString *fileContent=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

            if (error) {

               

     NSLog(@"error %@",[error localizedDescription]);//localizedDescription主要错误

            }else NSLog(@"%@",fileContent);

        }

    }

    字符串的比较

      BOOL b1=[@"hello"isEqualToString:@"hello"];//判断两个字符串的内容是否相同

        NSLog(@"%i",b1);

     NSComparisonResult b2= [@"4"compare:@"Hell0"];//比较两个字符串的大小

        b2的取值范围是三个枚举值:NSOrderedAscending = -1,  NSOrderedSame, NSOrderedDescending

     NSComparisonResult result= [@"st"caseInsensitiveCompare:@"St"];//忽略字符大小写来比较

    字符串的搜索

     NSString *str=@"string";

        NSLog(@"%i",[str hasPrefix:@"std"]);//是否以**开头

        NSLog(@"%i",[str hasSuffix:@"ngg"]);//是否以**结尾

     NSString *str=@"string";

        NSRange range=[str rangeOfString:@"ring"];//找到字符串的位置

        NSLog(@"%@",NSStringFromRange(range));

      range=[str rangeOfString:@"tr"options:NSBackwardsSearch];//从后往前搜索

        range=[str rangeOfString:@"tr" options:NSBackwardsSearch range:range];//在范围内搜索

    字符串截取

     NSString *str=@"strtring";
        NSRange range=NSMakeRange(2, 2);
        NSLog(@"%@",[str substringWithRange:range]);//从第二个字符开始到后面的2个字符
        NSLog(@"%@",[str substringToIndex:2]);//从第一个到第二个前面的一个
        str=@"1,2,3,4,5";
      NSArray *arrs=  [str componentsSeparatedByString:@","];//从字符串中分割元素到数组中
        for (int i=0; i<arrs.count; i++) {
            NSLog(@"%@",arrs[i]);
        }

      NSLog(@"%@",[arrs objectAtIndex:1]);//获取第index处的元素

    // NSString 与路径
        NSMutableArray *components=[NSMutableArray array];//把数组中的元素拼接成路径形式的字符串
        [components addObject:@"he"];
        [components addObject:@"ll"];
         [components addObject:@"ow"];
        NSLog(@"%@",[NSString pathWithComponents:components]);

       NSArray *component=[path pathComponents ];//再把路径分解成数组
        NSLog(@"%@",component);

     -(BOOL)isAbsolutePath//是否为绝对路径
        -(NSString *)lastPathComponent//获取最后一个路径
        -(NSString *)stringByDeletingByDeletingLastPathComponent//删除最后一个目录
        -[(NSString *)stringByAppendingPathComponent:(NSString *)str//在路径后面加一个目录

    课堂笔记要点 

    -initWithFormat:

    -initWithContentsOfFile:encoding:error:

    -initWithContentsOfURL:encoding:error:

    获取字符串长度-length

    -UTF8String把字符串转化为C的字符串

    -stringByAppendingFormat:  字符串拼接

    分割字符串

     NSString *str=@"strtring";

        NSLog(@"%@",[str substringFromIndex:2]);//从第二个字符开始到最后

        NSLog(@"%@",[str substringToIndex:2]);//从第一个到第二个前面的一个

    字符串拓展名

     NSString *str=@"test.txt";
       NSLog(@"%@",[str pathExtension]);//获取路径拓展名
        NSLog(@"%@",[str stringByDeletingPathExtension]);//获取删除拓展名之后的路径

     NSLog(@"%@",[str stringByAppendingPathExtension:@"exe"]);//添加拓展名

    课堂笔记要点 

    -componentsSeparatedByString: 字符串分割返回值是数组

    -substringFromIndex:

    -substringWithRange:

    -substringToIndex:

    字符串替换

    -stringByReplacingOCccurrencesOfString:withString:

    -compare:

    -hasPrefix:

    -hasSuffix:

    -isEqualToString:

    二,字符串 

    可变字符串NSMutableString

    -appendFormat:

    -setString:  设置字符串

     重点:

    数组创建

      NSArray *array=[NSArray array];//声明数组1
            array=[NSArray arrayWithObject:@"a"];//声明数组2,初始化一个元素
            array= [NSArray arrayWithObjects:@"a",@"b", nil];//声明数组3,初始化很多元素
            [array count];//数组元素个数

    数组的简单使用       
    NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
            if ([array containsObject:@"a"]) {//数组中是否包含元素a
                NSLog(@"array has a!");
            }

     NSLog(@"%@",[array lastObject]);//获取数组中最后一个元素
            NSLog(@"%@",[array objectAtIndex:1]);//获取特定位置的元素
            NSLog(@"%zi",[array indexOfObject:@"a"]);
            //快速遍历
            for (id item in array) {
                NSLog(@"%@",item);
            }
    [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {//使用block遍历数组,stop控制停止
                NSLog(@"%@%zi",obj,idx);
                if (idx==1) {
                    *stop=YES;
                }
            }];
    数组排序
     NSArray *arr=[array arrayByAddingObject:@"cc"];//向数组中添加元素并返回一个新数组
            NSLog(@"%@",arr);

     NSArray *arr=[array arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:@"aaa",@"bbb", nil]];
            NSLog(@"%@",arr);

      NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
           NSLog(@"%@",[array componentsJoinedByString:@"-"]);//使用分隔符把数组改为字符串

    //返回一个排序好的数组,原来的数组内容顺序不变
            NSArray *arr=[array sortedArrayUsingSelector:@selector(compare:)];//指定元素的排序方法
            NSLog(@"%@",arr);

    //NSString 是不可变的,不恩能够删除或添加字符.它的子类 NSMutableString,称为可变字符串
        //创建可变字符串的常用方法:
        -(id)initWithCapacity:(NSUInteger)capacity
        -[(id)stringWithCapacity:(NSUInteger)capacity//capacity只是分配的容量提高操作速度,如果不够用会自动添加

    +arrayWithObjects:   -initWithObjects:  使用频率最高

    +arrayWithContentsOfFile:  从文件读数组

    查询数组

    -count 数组元素个数,通常用于循环语句 for(int i=0;i<[arr count];i++);

    -objectAtIndex: 通常用于循环内部,查询.id obj=[arr objectAtIndex:i];

    -firstObject    -lastObject

    数组比较

    -isEqualToArray:  返回bool值

    NSMutableArray使用最多

    -addObject:

    -removeObjectAtIndex:

    -removeAllObjects

    -removeLastObject

     Getting Numeric Values:

    -doubleValue ...

    NSDictionary不可变添加,删除,修改元素

     初始化常用initWithObjectsAndKeys:(id),....nill;

    -count 个数

    -isEqualToDictionary:

    -objectForKey:

    key不存在就添加,存在就覆盖,setObject:forKey:

    -removeAllObjects

    -removeObjectforKey:

     NSSet 集合

    NSSet,不可变集合

    可以存放多个对象,以nil表示结束,对象在set中存储是无序的. 

     trim的实现

      1. NSString *string = @" spaces in front and at the end ";   
      2. NSString *trimmedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];   
      3. NSLog(@"%@",trimmedString) ; 
  • 相关阅读:
    MongoDB compass 连接不上远程服务器的解决方法
    art-template 模版引擎
    mongodb数据库的集合关联
    捕获mongoogse 错误信息
    inux下使用自带mail发送邮件告警
    rinted端口转发工具
    windows安装PHP IIS MYSQL
    sql语句查询知识点
    maven加速镜像
    docker启动容器关于防火墙报错
  • 原文地址:https://www.cnblogs.com/huntaiji/p/3413285.html
Copyright © 2011-2022 走看看