zoukankan      html  css  js  c++  java
  • OC学习 NSString NSMutableString NSArray NSMutableArray NSNumber(详解)

    #pragma mark – NSString
    1:  initWithString 直接赋值常量字符串对象
    例如: NSString =*str = @”yangyang”;
    2:stringWithstring 相当于直接赋值
    例如:NSString *str =@”yyy”;
     
    3:initWithFormat : 通过传入的格式化字符串进行字符串对象的创建
    例如: NSString *str=  [[NSString alloc]initWithFirmat:@”普通字符串 %@ %@f %D”,@”aaa”,2.0,6];
    NSLog(@”%@”,str3);
    4: stringWithFormat : 内部封装了alloc 以及initWithFormat:的操作
       通过便利构造器创建的字符串
       NSString *str4 = [NSStringstringWithFormat:@"通过便利构造器创建的字符串"];
       NSLog(@"%@",str4);
    5:initWithUTF8String: 将C语言的字符串 转化为OC字符串对象
        NSString *str5 = [[NSStringalloc]initWithUTF8String:"我是一个C语言字符串,不加@,我很厉害"];
    NSLog(@"%@",str5);
        NSString *str6 = [NSStringstringWithUTF8String:"通过便利构造器方法将语言字符串转化为OC字符串对象"];
    NSLog(@"%@",str6);
     
    6
    NSString *str =[NSString stringWithFormat:@"http://www.lanou3g.com"];
    6.1  字符串的替换  指的是将所有的符合条件的字符串 都进行替换
    NSString *replaceStr = strstringByReplacingOccurrencesOfString:@"w"withString:@"haiyan"];
    NSLog(@"%@",replaceStr);
    6.2 字符串的拼接   在字符串的后面拼接新的字符串
      NSString *appendStr = [strstringByAppendingFormat:@"QQ"];
      NSLog(@"%@",appendStr);
    6.3: 测字符串的长度
       NSUInteger length = [str length];
      NSLog(@"length = %lu",length);
    6.4: 大小写替换   只需要调用系统封装好的方法就行
    // upper全部转换成大写
    NSString *upperStr =[str uppercaseString];
    NSLog(@"%@",upperStr);
    //全部转成小写
    NSString *lowerStr =[upperStr lowercaseString];
    NSLog(@"%@",lowerStr);
    //每个单词的首字母大写
    NSString *capital = [strcapitalizedString];
    NSLog(@"%@",capital);
    6.5 判断开头和结尾   一般用于判断字符串格式
    用BOOL类型进行接收  若是判断相同 则返回1  不同则返0
    BOOL isPerfix = [strhasPrefix:@"htt"];
    NSLog(@"%d",isPerfix);
    BOOL isSufFix = [strhasSuffix:@".com"];
    NSLog(@"%d",isSufFix);
     
    6.6  截取
    //substringFromIndex  从给定位置开始截取的字符串结尾
    NSString *subStr1 = [strsubstringFromIndex:3];
    NSLog(@"%@",subStr1);
     
    //substringToIndex: 从开头截取到自定位置(不包括当前位置)
    NSString *subStr2 = [strsubstringToIndex:3];
    NSLog(@"%@",subStr2);    
     
    //substringWithRange: 通过给定的范围进行字符串的截取
    //系统给我们提供了 快速创建结构体的方式 NSMake + 结构体名
     (例如 NSRange NSMakeRang(1,10);)
    NSString *subStr3 = [strsubstringWithRange:NSMakeRange(3, 8)];
    NSLog(@"subStr3 =%@",subStr3);
    6.7:判断两个字符串是否相等
     
    NSString *str2 =[NSString stringWithFormat:@"ab"];
    NSString *str3 =[NSString stringWithFormat:@"ba"];
    // isEqualToString : 若是每个对应的字符串都相等则返回1  不相等则返回0
    BOOL isEqual = [str2 isEqualToString:str3];
    NSLog(@"%d",isEqual);
    // compare也是比较是否相等  只比较对应字符串的ASCII玛的差值 相等返回0  不相等返回-1
    NSInteger result = [str2compare:str3];
    NSLog(@"result =%ld",result);
     
     
    #pragma mark -NSMutableString
    可变字符串  可变字符串 是NSString的子类 增添了NSString可变的功能
    可变的字符串不能调用父类的方法实现
    //创建一个可变的字符串
    NSMutableString *yang =[[NSMutableString alloc]initWithFormat:@"yang love na"];
    1: 拼接 appendFormat: 在字符串的后面进行拼接
      [yang appendFormat:@" family"];
    2:插入  insertString:  在任意位置插入
    [yanginsertString:@" and" atIndex:12];
    3:删除   deleteCharactersInRange : 删除任意一段范围
      [yang deleteCharactersInRange:NSMakeRange(10,7)];
    4:替换  replaceCharactersInRange: 替换任意一段范围
    [yang replaceCharactersInRange:NSMakeRange(10,6)withString:@"QQQQQ"];
    5: 更改  setString:对整个字符串进行更改
    [yangsetString:@"yang and nana life happy forever"]
     
     
    #pragma mark – NSArray
    首先定义三个字符串
    NSString *Nokia =@"Nokia";
    NSString *apple =@"Apple";
    NSString*mi=@"MI";
     
    //initWithObjects : 在初始化时候一次性存储多个对象  对象和对象之间用逗号隔开 以nil结尾
    //nil之后的对象不在存储
    NSArray *array =[[NSArray alloc]initWithObjects:Nokia,apple,mi,nil];
    NSLog(@"%@",array);
    //获得数组元素个数
    NSInteger count = [arraycount];
    NSLog(@"%ld",count);
     
    //访问数组元素  
    // objectAtIndex: 访问数组的固定位置元素  也可以像C一样进行访问
    NSString *what = [array objectAtIndex:1];
    NSLog(@"%@%@",what,array[1]);
    //通过对象找到索引值
    //indexOfObject: 只是找到第一个满足条件的对象下标
    NSInteger index= [array indexOfObject:Nokia];
    NSLog(@"%ld",index);
     
    //遍历
    for (int i=0;i<array.count; i++) {
      NSLog(@"   %@",[array objectAtIndex:i]);
    }
    // sortedArrayUsingSelector:内部实现的就是冒泡排序 在OC里面直接调用这个方法就可以实现排序
    NSArray *sortedArr =[array sortedArrayUsingSelector:@selector(compare:)];
    NSLog(@"%@",sortedArr);
     
    #pragma mark -NSMutableArray   -- 可变的数组
    NSMutableArray *muArr =[[NSMutableArray alloc]initWithObjects:Yi,Er,San,Si,Wu, nil];
    //直接输出
    NSLog(@"%@",muArr);
    // 添加 addObject: 在后面进行添加
       [muArr addObject:Liu];
    //插入  insertObject:在任意位置插入
    [muArr insertObject:Qi atIndex:0];
     
    //交换位置  exchangeObjectAtIndex:任意两个位置进行交换
    [muArr exchangeObjectAtIndex:2 withObjectAtIndex:3];
     
    //删除
     [muArr removeObject:Qi];   //将所有符合的对象全部移除
     [muArr removeObjectAtIndex:0];  //删除固定位置的元素
     [muArr removeAllObjects];  //删除所有
     
     
     
    NSNumber- - 数字对象
    来源:虽然有int和float这些基本数字变量,但终究不是对象,所以不能接受消息(就是被调用),所以需要数字对象
    是一个类族  用来装基础类型的对象,把整型、单精度、双精度、字符型等基础类型存储为对象
    NSNumber * intNumber =[[NSNumber alloc] initWithInt:5];
    NSNumber * floatNumber =[[NSNumber alloc] initWithFloat:3.14f];
    NSNumber * doubleNumber= [[NSNumber alloc] initWithDouble:6.7];
    NSNumber * charNumber =[[NSNumber alloc] initWithChar:'A'];
     
    NSNumber *intNumber2 = [NSNumber numberWithInt:6];
     
    //判断两个NSNumber 是否相等    BOOL类型 相等返回1  不相等返回0
    // 可以跨不同对象,比如:比较intNumber和floatNumber
    BOOL ret = [intNumberisEqualToNumber:intNumber2];
     
    //比较两个整型的NSNumber的大小
    if ([intNumbercompare:intNumber2] == NSOrderedAscending) {
    NSLog(@"<");
    }else if([intNumber compare:intNumber2] ==NSOrderedSame){
        NSLog(@"=");
    }else if([intNumber compare:intNumber2] == NSOrderedDescending){
        NSLog(@">");
     }
       //通过以下方法可以还原这些基本数据类型的数据
            NSLog(@"%d",[intNumber intValue]);
            NSLog(@"%f",[floatNumber floatValue]);
            NSLog(@"%f", [doubleNumberdoubleValue]);
            NSLog(@"%c",[charNumber charValue]);

  • 相关阅读:
    随机生成密码
    vue 仿新闻项目笔记
    vuex 随笔
    SourceTree
    vue npm,Git随笔
    谷歌浏览器如何去掉自动填充的背景色
    hold 命令
    ind2vec和vec2ind函数
    稀疏矩阵(sparse matrix)
    第五篇 学习OpenCV之视频处理
  • 原文地址:https://www.cnblogs.com/fzkwan5438020/p/5067382.html
Copyright © 2011-2022 走看看