你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發-OC言語 (三)字符串

iOS開發-OC言語 (三)字符串

編輯:IOS開發綜合

字符串

 

知識點

1.NSString 

2.NSMutableString 

3.理解NSMutableString與NSString的承繼關系

理解:

  1.什麼是字符編碼

是一套規律,運用該規律可以對自然言語的字符的一個集合(如字母表或音節表),與其他東西的一個集合(如號碼或電脈      沖)停止配對。即在符號集合與數字零碎之間樹立對應關系。

字符編碼百科:http://baike.baidu.com/link?url=bFKEidJQmo3JEljFQRbtkEyToRe1_SrqbCgNsv4jKcYGFyTBixJjhTVYegSiozPVpvrR99cQhUoQq_01BnF1L_

  

  2.UTF8編碼:UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。由Ken Thompson於1992年創立。如今曾經規范化為RFC 3629。UTF-8用1到6個字節編碼UNICODE字符。用在網頁上可以同一頁面顯示中文簡體繁體及其它言語(如英文,日文,韓文)。

 

 

 

 

 

 

========= 不可變字符串(NSString) =========

 

   1.為什麼需求NSString對象

答:在OC中創立字符串時,普通不運用C的辦法,

由於C將字符串作為字符數組,所以在操作時會有很多不方便的中央,

在Cocoa中NSString集成的一些辦法,可以很方便的操作字符串。

 

 

  2.OC中定義字符串和C言語定義字符串

    //C字符串常量

        char *cString = "c字符串";

        printf("c string is %s\n",cString);

        //OC字符串常量

 

        NSString *ocString = @"oc字符串";

 

        NSLog(@"oc string is %@",ocString);

 

 

  3.NSLog如何格式化NSString對象

      %@

    

 

 

    4.字符串創立

      (1)定義一個空的不可變字符串(普通用不到):

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

      (2)定義一個有值的字符串(普通用不到)

        [NSString stringWithString:@"test"];

        [[NSString alloc] initWithString:<#(NSString *)#>];

 

  

    5.如何格式化一個字符串

     [NSString stringWithFormat:<#(NSString *), ...#>];

 

 

  6.C言語字符串和NSString的轉換

 

  <1>c字符串轉化為NSString

      [NSString stringWithUTF8String:c];

     <2>NSString轉化為C

      [string UTF8String];

 

 

    7.如何從文本文件中讀取字符串

  //第1種:

     /*

         stringWithContentsOfFile:要讀取文件途徑

         encoding:編碼方式

         error:錯誤信息,可以傳nil

         */

//類辦法

        s = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

//對象辦法

        [[NSString alloc] initWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>];

 

第2種:

//把途徑的字符串轉化為NSURL對象

      NSURL *filePath = [NSURL fileURLWithPath:path];

        

        string = [NSString stringWithContentsOfURL:filePath encoding:NSUTF8StringEncoding error:nil];

 

 

 

    8.如何把一個字符串寫入到文件中

       /*

         writeToFile:要寫入的文件途徑(file path)

         atomically:YES表示原子性,NO表示非原子性。普通是YES(比擬平安),當為YES,零碎在寫入的進程中會創立一個暫時文件,零碎先把數據寫入到暫時文件外面,假如寫入成功,最後賦值到目的文件外面。

         encoding:編碼,普通是UTF8(NSUTF8StringEncoding)

         */

    

        NSError *error;

        //文件不存在會自動創立

        [string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];

 

 

    9.如何從網絡上讀取字符串

    NSURL *url = [NSURL URLWithString:近程地址];

        

        string = [NSString stringWithContentsOfURL: url encoding:NSUTF8StringEncoding error:nil];

   

 

 

    10.求字符串長度(一個中文長度為1)

     [string length]

 

 

 

 

 

    11.經過索引獲取相應的字符

     [string characterAtIndex:0]

 

 

  

    12.字符串判別

      1)判別兩個字符串內容能否相反

        [s1 isEqualToString:s2]

 

      2)判別兩個字符串能否是同一個對象

 

        if (s1 == s2)

        {

            NSLog(@"s1和s2是同一個對象");

        }

        else

        {

            NSLog(@"s1和s2不是同一個對象");

        }

   

 

     13.字符串比擬

        1)兩個字符串比擬(區分大小寫)

        NSComparisonResult result = [s1 compare:s2];

        

        if (result == NSOrderedAscending)

        {

            NSLog(@"s2 > s1");

        }

        else if (result == NSOrderedSame)

        {

            NSLog(@"s1 = s2");

        }

        else

        {

            NSLog(@"s2 < s1");

        }

         

        2)比擬兩個字符串(疏忽大小寫)

          //疏忽大小寫

        result = [s1 caseInsensitiveCompare:s2];

 

 

    14.轉化為根本類型(int,float,bool,double,integer)

       //轉化為int

        [num2 intValue];

        //轉化為NSInteger

        [num2 integerValue];

        //轉化為Double

        [num2 doubleValue];

        //float

        [num2 floatValue];

        //long long

        [num2 longLongValue];

        //bool

        [num2 boolValue];

 

    15.把一個字符串轉化為大寫,小寫,各個單詞的首字母大寫

       //轉化為大寫

        NSString *upperString = [s1 uppercaseString];

        NSLog(@"大寫:%@",upperString);

        //轉化為小寫

        NSString *lowString = [s1  lowercaseString];

        NSLog(@"小寫:%@",lowString);

        

        //各個單詞的首字母大寫

        NSString *ss = [s1 capitalizedString];

        NSLog(@"各個單詞的首字母大寫:%@",ss);

     

    16. 交換字符串

        [S stringByReplacingOccurrencesOfString:A  withString:B];//把S中一切的A換為B

       [string stringByReplacingOccurrencesOfString:@"l3l" withString:@"s"];

    

 

    17.聯系一個字符串,轉化為數組

[string componentsSeparatedByString:@“分隔符”];

 

    18.字符串截取

    //從指定索引截取到最後

        NSString *subString = [string substringFromIndex:起始索引];

//從開端截取到指定的索引之前

        subString = [string substringToIndex:終止索引(不包括以後索引)]’

//截取字符串的一局部

                //范圍

        NSRange range = NSMakeRange(2, 3);

       [string substringWithRange:range];

 

 

       

 

    19.字符串拼接

      (1)拼接一個字符串

        [str1 stringByAppendingString:str2]

      (2)拼接一個格式化字符串

       [str1 stringByAppendingFormat:@" %@",str2]

       

 

    20.查找字符串

        //[string rangeOfString:要查找的字符串]

        //只會查找第一次呈現的字符串,從前向後查找

        range = [string rangeOfString:@"test"];

        NSLog(@"%ld - %ld",range.location,range.length);

        

        /*

         NSCaseInsensitiveSearch 不區分大小寫

         NSLiteralSearch 區分大小寫

         NSBackwardsSearch 從後向前查找

         */

        range = [string rangeOfString:@"test" options:NSBackwardsSearch];

        NSLog(@"%ld - %ld",range.location,range.length);

 

 

    21.判別一個字符串能否以某個前綴或許後綴

 //判別能否以某個字符串前綴掃尾

        [string hasprefix:@"he22"]

//判別能否以某個字符串前綴開頭

[string hasSuffix:@"ds"];

 

    22.途徑

     1)途徑前面追加一個文件名或許途徑(網絡會用到)

       [path stringByAppendingPathComponent:文件名或許文件夾名字];

 

 

     2)把指定的字符串數組拼接成途徑

      NSMutableArray *array = [NSMutableArray arrayWithObjects:@"Users",@"qianfeng",@"desktop",@"新建文件夾", nil];

        newPath = [NSString pathWithComponents:array];

 

     3)將途徑聯系成字符串數組

      NSArray *components = [path pathComponents];

       

 

 

     4)判別能否是相對途徑

        BOOL isAbsolutePath = [path isAbsolutePath];

        

  

 

     5)獲取最後一個目錄或許文件名

       //取途徑的最後一局部

        NSString *s = [path lastPathComponent];

 

     6)刪除途徑最後一局部

[path stringByDeletingLastPathComponent];

 

     7)獲取文件後綴

[path pathExtension]        

 

     8)刪除後綴

[path stringByDeletingPathExtension];

       

 

     9)添加後綴

      [path stringByAppendingPathExtension:@"png"];

 

  

 

  .

 

 

 

 

========= 可變字符串(NSMutableString) =========

 

   1.初始化可變字符串(必需初始化)

    NSMutableString *string = [[NSMutableString alloc] init];

    string = [NSMutableString string];

    

 

 

 

   2.初始化帶有字符串的可變字符串

     [NSMutableString stringWithString:@"sss"];

 

 

   3.設置字符串 

     //設置字符串(會掩蓋原來字符串內容)

      [string setString:@"測試"];

 

   4.在指定的地位拔出字符串

[string insertString:@“要拔出的字符串” atIndex:拔出字符串的下標];

 

 

   5.追加一個局部字符串(在最後追加)

    [string appendString:@"🐷"];

        //追加格式化字符串

    [string appendFormat:@"dog=%@ cat=%@",@"🐶",@"🐱"];

 

 

   6.刪除字符串一局部

       //要刪除的范圍

        NSRange deleteRange = NSMakeRange(3, 2);

        //刪除指定范圍的字符

        [string deleteCharactersInRange:deleteRange];

     

 

 

 

 

 

 

 

 

 

 

【iOS開發-OC言語 (三)字符串】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved