OC学習の--文字列クラス&配列クラス&値オブジェクト


Foundationフレームワーク
    FoundationフレームワークはCocoaプログラミング、iOSプログラミングの基礎フレームワークであり、文字列、集合、日付、時間などの基礎クラスを含む.
一.文字列クラス
    1.文字列: 
                C言語における文字列はchar(ASCII)文字からなる.
                OCでは、文字列はunichar(Unicode)文字からなる.
                NSString、可変文字列、すなわち、作成後、コンテンツと長さは変更できません.
                NSMutablesString、可変文字列、すなわち、作成後、コンテンツを変更することもできます.
                インスタンスメソッドと便利なコンストラクタを使用して新しい文字列を作成    
    2. NSStringの一般的な方法
        1).異なるタイプがNSString*タイプに変わる
  NSStrng *str = [NSString stringWithFormat:@"adfjljk%d" , 2];
  NSLog(@"%@", str);

        2).サブストリング-sub
NSString *strVal = @"qingchuner";
// index 2       
NSString *str = [strVal substringFromIndex:2];
//   index 6
NSString *str1 = [strVal substringToIndex:6];
//    
NSString *str2 = [strVal substringWithRange:NSMakeRange(2, 3)];
NSLog(@"%@", str2);

        3).パッチ-append
NSString *strVal = @"qingchuner";

//   ,         ,       
NSString *str = [strVal stringByAppendingFormat:@"%@%@%@%@%@",@"esdfr", @"dsfdf", @"saldjf", @"sdf", @"DS"];
NSLog(@"%@", str);
//     
NSString *str = [strVal stringByAppendingString:@"sdsfk"];

        4).replaceを置換
NSString *strVal = @"qingchuner";
//            ,          
NSString *str = [strVal stringByReplacingOccurrencesOfString:@"ing" withString:@"aaa"];
NSLog(@"%@", str);
NSString *str1 = [strVal stringByReplacingCharactersInRange:NSMakeRange(2, 3) withString:@"SSjjl"];
NSLog(@"%@", str2);

         5)判断比較
      -      
BOOLret = [strVal isEqualToSting:@"qingchuning"];
NSLog(@"%d", ret);

//    
NSComparisonResult ret1 = [strVal compare:@"aaa"];
NSLog(@"%ld", ret1);
 //    
 BOOL ret3 = [strVal hasPrefix:@"qi"];
 NSLog(@"%d", ret3);
        
BOOL ret4 = [strVal hasSuffix:@"g"];
NSLog(@"%d", ret4);

        6).変換
        //7.  
        //          
        NSString *strVal = @"2.0";
        //intValue doubleValue floatValue integerValue boolValue  
        //  :           ...format  
        float ret = [strVal floatValue];
        NSLog(@"%f", ret);
        
   -----------------------------------------------
        //     
        NSString *strVal = @"qingChuning";
        //   
        NSString *str1 = [strVal lowercaseString];
        NSLog(@"%@", str1);
        //   
        NSString *str2 = [strVal uppercaseString];
        NSLog(@"%@", str2);
        //      ,       
        NSString *str3 = [strVal capitalizedString];
        NSLog(@"%@", str3);

 二.配列
    1.可変配列
        //     
        //1.    &   
        NSArray *arr1 = [[NSArray alloc] initWithObjects:@"  ", @"   ",@"  ", @"   ", nil];
        
        NSArray *arr2 = [NSArray arrayWithObjects:@"  ", @"   ",@"  ", @"   ", nil];

        //    arr1 arr3
        NSArray *arr3 = [NSArray arrayWithArray:arr1];
        
        
        //2.    
        NSLog(@"%ld", arr1.count);
        //3.  
        for (int i = 0; i < arr1.count; i ++) {
            NSLog(@"%@", arr1[i]);
            //        
            NSLog(@"%@", [arr1 objectAtIndex:i]);
        }
        
        //         (    )
        NSLog(@"%ld", [arr1 indexOfObject:@"  "]);

    2.可変配列
    //    
        //1.   &   
        NSMutableArray *arrm1 = [[NSMutableArray alloc] initWithObjects:@"  ", @"   ",@"  ", @"   ", nil];
//        NSMutableArray *arrm2 = [NSMutableArray arrayWithObjects:@"  ", @"   ",@"  ", @"   ", nil];
    
        //         
        NSMutableArray *arrm2 = [NSMutableArray array];
//        NSLog(@"%ld", [arrm2 indexOfObject:@"  "]);
        
        //2.  
        [arrm1 addObject:@"  "];
        
        
        //            ,         .
        [arrm1 addObject:arrm2];
        
           
        //3.   
        [arrm1 insertObject:@"  " atIndex:2];
        //4.  
        [arrm2 removeObject:@"   "];
        //        
        [arrm2 removeLastObject];
        
        //5.  
        //            ,      
        [arrm1 replaceObjectAtIndex:3 withObject:@"wangningn"];
        
        //6.   
        //          
        [arrm1 exchangeObjectAtIndex:3 withObjectAtIndex:5];

三.値オブジェクト
        //   
        int a = 1;
        //int     
        NSNumber *val = [NSNumber numberWithInt:a];
        NSLog(@"%@", val);
        //    int
        NSLog(@"%d",[val intValue]);
        
        
        NSRange range = {1, 2};
        //   /         
        NSValue *val = [NSValue valueWithRange:range];
        NSLog(@"%@", val);
        
        //        /    
        NSRange ret = [val rangeValue];