zoukankan      html  css  js  c++  java
  • 第四讲.NSString(字符串),NSArray(数组),NSNumber(代码)

      1 #import <Foundation/Foundation.h>
      3 int main(int argc, const char * argv[]) {
      4     @autoreleasepool {
      5 
      6        
      7     /*
      8    -----------------------------------------------------------
      9                        字符串的使用
     10    ------------------------------------------------------------
     11     */
     12         //不可变字符串的使用
     13         
     14         //NSString的定义(6种方法)
     15         
     16     NSString *str = @"hello world";
     17         
     18     NSString *str2 = [[NSString alloc] initWithString:str];
     19     NSLog(@"%@",str2);
     20         
     21         //用c得字符串创建oc的字符串对象
     22     NSString *str3 = [[NSString alloc] initWithUTF8String:"大家好!!!"];
     23         NSLog(@"%@",str3);
     24         
     25         //使用格式符拼接一个字符串
     26     NSString * str4 = [[NSString alloc] initWithFormat:@"你好 %d %c",5,'b'];
     27       NSLog(@"%@",str4);
     28         
     29         //用c得到oc字符串的另一种方法
     30     NSString *str5 = [NSString stringWithUTF8String:"你还"];
     31      NSLog(@"%@",str5);
     32         
     33         //格式化创建字符串的两种方式
     34     NSString * str6 = [NSString stringWithFormat:@"%d %@ %c",1,@"哈喽",'r'];
     35       NSLog(@"%@",str6);
     36         
     37         //利用一个字符串创建另一个字符串的第2种方法
     38     NSString * str7 = [NSString stringWithString:str];
     39       NSLog(@"%@",str7);
     40         
     41     //比较两个字符串的大小以及是否相等
     42         
     43     NSString *s3 = @"456";
     44     NSString *s4 = @"456";
     45     //方法一
     46     //判断两个字符串是否相等 返回为一个BOOL类型的值
     47     BOOL zhi = [s3 isEqualToString:s4];
     48         NSLog(@"%hhd",zhi);
     49     //方法二
     50     NSComparisonResult p = [s3 compare:s4];
     51     if(p ==  NSOrderedAscending){
     52         NSLog(@"s3<s4");
     53     } else if(p == NSOrderedSame) {
     54         NSLog(@"s3 == s4");
     55     }else if (p ==NSOrderedDescending){
     56         NSLog(@"s3>s4");
     57     }
     58 
     59     //查找字符在字符串中的位置(返回值为位置和长度)
     60     NSString *s5 = @"I am so bad man";
     61     NSString *s6 = @"so";
     62         
     63     NSRange range = [s5 rangeOfString:s6];
     64     NSLog(@"location:%lu length:%lu",range.location,range.length);
     65         
     66     //获取子字符串,从字符串中提取一部分创建新的字符串(4种方法)
     67     
     68         NSString *s7  = @"0123456789";
     69         
     70     //方法一.  从str中提取从头至第6个字符串(不包括第6个),生成新字符串.返回字符串地址.开区间
     71     NSString *s8 = [s7 substringToIndex:6];
     72         NSLog(@"%@",s8);
     73         
     74     //方法二.  从str中提取从第6个字符串(包括第6个),到最后一个字符串,生成新字符串,返回字符串地址
     75     NSString * s9 = [s7 substringFromIndex:6];
     76         NSLog(@"%@",s9);
     77         
     78     //方法三
     79     NSRange rang = {3,4};
     80     NSString * s10 = [s7 substringWithRange:rang];
     81         NSLog(@"%@",s10);
     82         
     83     //方法四
     84     NSString *s11 = [s7 substringWithRange:NSMakeRange(3, 4)];
     85         NSLog(@"%@",s11);
     86         
     87         
     88         
     89         //可变字符串的增删改查  NSMutableString
     90         //1.增(append inset)
     91         
     92     NSMutableString *sc = [[NSMutableString alloc]init];
     93         
     94         //设置字符串或添加方法
     95         [sc setString:@"hello"];
     96         [sc setString:@"world"];
     97         
     98         //添加字符串
     99         [sc appendString:@"123"];
    100         [sc appendFormat:@"%c",'d'];
    101         
    102         //插入字符串
    103         [sc insertString:@"xxxx" atIndex:4];
    104         NSLog(@"%@ ",sc);
    105         
    106         //删 (delete)
    107         //方法一
    108     NSRange ran = NSMakeRange(2, 3);
    109         [sc deleteCharactersInRange:ran];
    110         //方法二
    111     [sc deleteCharactersInRange:NSMakeRange(3, 5)];
    112         NSLog(@"%@",sc);
    113         
    114         //替换字符串(replace)(一)*仅适用不可变数组
    115     [sc replaceCharactersInRange:NSMakeRange(3, 2) withString:@"iii"];
    116         NSLog(@"%@",sc);
    117         
    118         //替换字符串(二)*可变不可变都能用
    119     NSString *sb = [sc stringByReplacingOccurrencesOfString:@"34"withString:@"00"];
    120         NSLog(@"%@",sb);
    121  
    122         
    123         /*
    124          
    125     ----------------------------------------------
    126          
    127             NSArray数组的定义和使用
    128          
    129     -----------------------------------------------
    130          
    131          */
    132       //不可变数组
    133     //定义数组的方法
    134     NSArray *c =[NSArray arrayWithObjects:@"12",@"34",@"56",nil];
    135         NSLog(@"%@",c);
    136         
    137     //查找数组对应位置元素
    138     NSArray *c1 = [c objectAtIndex:2];
    139         NSLog(@"%@",c1);
    140         
    141     NSInteger i = [c indexOfObject:@"56"];
    142         NSLog(@"%ld",i);
    143         
    144     //输出数组元素个数
    145    NSLog(@"%lu",(unsigned long)[c count]);
    146         
    147     /*
    148      
    149     //可变数组定义及使用
    150      
    151     */
    152     NSMutableArray *d = [[NSMutableArray alloc]initWithObjects:@"one",@"two",@"three", nil];
    153         NSLog(@"%@",d);
    154         
    155         //增加数组元素
    156         [d addObject:@"1"];
    157         [d addObject:@"2"];
    158         NSLog(@"%@",d);
    159         
    160         //删除数组元素
    161         
    162         //1.删除指定对象
    163         [d removeObject:@"one"];
    164         NSLog(@"%@",d);
    165         //2.删除对应位置元素
    166         [d removeObjectAtIndex:1];
    167         NSLog(@"%@",d);
    168         //3.删除最后一个
    169         [d removeLastObject];
    170         NSLog(@"%@",d);
    171         //4.删除所有
    172         [d removeAllObjects];
    173         NSLog(@"%@",d);
    174         
    175         
    176     NSMutableArray *d1 = [NSMutableArray arrayWithObjects:@"12",@"345",@"659", nil];
    177         
    178         //交换元素位置
    179         [d1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
    180         NSLog(@"%@",d1);
    181         
    182         //替换数组元素
    183     [d1 replaceObjectAtIndex:2 withObject:@"__"];
    184         NSLog(@"%@",d1);
    185         
    186 
    187         //快速枚举法遍历数组
    188         for(id obj in d1)
    189         {
    190             NSLog(@"%@",obj);
    191             
    192         }
    193         
    194         //使用i值遍历数组
    195     NSInteger lengt = [d1 count];
    196     for (int i=0; i<lengt; i++) {
    197             NSLog(@"%@",[d1 objectAtIndex:i]);
    198         }
    199         
    200         //枚举器法遍历数组
    201     NSEnumerator * enumerator = [d1 objectEnumerator];
    202     id obj;
    203     while (obj = [enumerator nextObject]) {
    204             NSLog(@"%@",obj);
    205         }
    206         
    207         //逆序枚举遍历数组
    208     NSEnumerator *n = [d1 reverseObjectEnumerator];
    209     id ob;
    210     while (n = [enumerator nextObject]) {
    211             NSLog(@"%@",ob);
    212         }
    213     NSLog(@"%@",d1);
    214         
    215         //注意:使用枚举法时对数组不能修改,用逆序枚举法也可以改
    216 
    217       
    218         
    219     
    220         
    221         
    222         
    223     //给定一个字符串,判断字符串中是否以"png"结尾,如果是就替换成"jpg",如果不是,就拼接".jpg"
    224      //方法一
    225     NSString *st = @"00000png";
    226     NSInteger leng = [st length];
    227         NSLog(@"%lu",leng);
    228         
    229     NSString*st1 = [st substringFromIndex:leng-3];
    230         NSLog(@"%@",st1);
    231         
    232     if ([st1  isEqualToString: @"png"]){
    233     NSString *st2 =
    234     [ st stringByReplacingOccurrencesOfString:st1 withString:@"jpg"];
    235             NSLog(@"%@",st2);
    236         }  else {
    237     NSString *st3 =[ st stringByAppendingString:@",jpg"];
    238             NSLog(@"%@",st3);
    239         }
    240         
    241         
    242     //方法二
    243     NSMutableString *c4 = [[NSMutableString alloc]init];
    244     [c4 setString:@"000000000png"];
    245         
    246     NSInteger length = [c4  length];
    247         NSLog(@"%ld",(long)length);
    248 
    249     if ([[c4 substringFromIndex:length-3] isEqualToString:@"png"])
    250     {
    251         [c4 replaceCharactersInRange:NSMakeRange(length-3, 3) withString:@"jpg"];
    252             NSLog(@"%@",c4);
    253             
    254     } else {
    255         [c4 appendString:@".jpg"];
    256             NSLog(@"%@",c4);
    257         }
    258         
    259         
    260 //数组与字符串的联合使用  倒序输出”I am a so bad man”
    261     NSString *str1 = @"I am a so bad man";
    262     NSArray *arry = [str1 componentsSeparatedByString:@" "];
    263     NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
    264         
    265     NSEnumerator *enu = [arry reverseObjectEnumerator];
    266         
    267     id j;
    268     while (j = [enu nextObject]) {
    269         [mutableArray addObject:j];
    270     }
    271     NSString *newStr = [mutableArray componentsJoinedByString:@"@"];
    272     NSLog(@"%@",newStr);
    273 
    274         
    275       /*
    276        
    277    --------------------------------------
    278        
    279        NSNumber的使用(用于转化进本数据类型)
    280        
    281    ---------------------------------------
    282        
    283        */
    284         
    285     //把基本类型转化为NSNumber
    286         NSNumber *intNumber = [[NSNumber alloc] initWithInt:5];
    287         NSNumber *floatNumber = [[NSNumber alloc]initWithFloat:5.0f];
    288         NSNumber *doubleNumber = [[NSNumber alloc]initWithDouble:4.67];
    289         NSNumber *charNumber = [[NSNumber alloc]initWithChar:'A'];
    290         NSLog(@"%@   %@   %@    %@",intNumber,floatNumber,doubleNumber,charNumber);
    291         
    292         
    293         //通过调用还原基本数据类型
    294         NSLog(@"%d",[intNumber intValue]);
    295         NSLog(@"%f",[floatNumber floatValue]);
    296         NSLog(@"%f",[doubleNumber doubleValue]);
    297         NSLog(@"%c",[charNumber charValue]);
    298         
    299         
    300         //比较两个元素是否相等(返回值为1或0)
    301     BOOL ret = [intNumber isEqualToNumber:floatNumber];
    302         NSLog(@"%d",ret);
    303         
    304         //另一种比较的方法
    305     if([intNumber compare:floatNumber] ==NSOrderedAscending){
    306             NSLog(@"<");
    307     } else if ([intNumber compare:floatNumber] == NSOrderedSame){
    308             NSLog(@"=");
    309     } else if ([intNumber compare:floatNumber]==NSOrderedDescending){
    310             NSLog(@">");
    311     }
  • 相关阅读:
    滚动数组
    leetcode动态规划
    初中数学学习
    LCS最长公共子序列
    Help Jimmy
    IntelliJ IDEA 设置和查看内存使用
    无法嵌入互操作类型“ApplicationClass”。请改用适用的接口
    代码重构与单元测试——重构6:使用“多态”取代条件表达式(九)
    一个屌丝程序猿的人生(一百二十六)
    一个屌丝程序猿的人生(一百二十五)
  • 原文地址:https://www.cnblogs.com/erdeng/p/4768749.html
Copyright © 2011-2022 走看看