OC之字符串 NSString與NSMutableString

1、NSString 不可變字符串的操做
1)將字符串常量對象直接賦值給字符串引用 NSString *str1=@"hello"; 字符串對象的輸出格式:NSLog(@"str1=%@",str1)。
 2)initWithString可將OC中的字符串對象構建字符串引用  NSString *str2=[[NSString alloc]initWithString:str1]; 。
 3)initWithUTF8String可將C語言的字符串建立OC的字符串對象,將C字符串轉換爲OC字符串:
     NSString *str3=[[NSString alloc]initWithUTF8String:"iOS"];
 4)initWithFormat可將OC的格式化字符串建立OC的字符串對象int age=20; 
     NSString *str4=[[NSString alloc]initWithFormat:@"name is %@,age is  %d",str1,age];
 5)可以使用.length方法獲取字符串的長度 NSUInteger len= str1.length;
 6)characterAtIndex可根據下標取出某個字符 如: NSString *str1=@"hello"; unichar c= [str1 characterAtIndex:0];
    結果爲:h
 7)compare用於比較兩個字符串,該方法區分大小寫, 返回結果爲NSComparisonResult 枚舉類型數據 枚舉值有
    一、NSOrderedAscending 表示前一個字符串小於後一個字符串
    二、NSOrderedSame 表示兩個字符串相等
    三、NSOrderedDescending 表示前一個字符串大於後一個字符串
實例代碼:
 1 NSString *str1=@"hello"; 2 NSString *str3=[[NSString alloc]initWithUTF8String:"iOS"]; 3 NSComparisonResult cmp=[str1 compare:str3]; 4  if(cmp==NSOrderedAscending){ 5    NSLog(@"%@<%@",str1,str3); 6  }else if (cmp==NSOrderedSame){ 7    NSLog(@"%@=%@",str1,str3); 8  }else if (cmp==NSOrderedDescending){ 9    NSLog(@"%@>%@",str1,str3);10  }//結果:hello<iOS
 8)caseInsensitiveCompare 不區分大小寫比較字符串;比較字符串,能夠設置比較選項
    NSNumericSearch:若是字符串中有數字, 按數字大小比較,例如:ios5<iso12
    NSCaseInsensitiveSearch:不區分大小寫比較,例如iOS7=ios7
 實例代碼:
 1 NSComparisonResult cmp=[str1 caseInsensitiveCompare:str3]; 2 str1=@"iOS7"; 3 str3=@"ios7"; 4 cmp=[str1 compare:str3 options:NSCaseInsensitiveSearch]; 5 if(cmp==NSOrderedAscending){ 6  NSLog(@"%@<%@",str1,str3); 7  }else if (cmp==NSOrderedSame){ 8   NSLog(@"%@=%@",str1,str3); 9 }else if (cmp==NSOrderedDescending){10    NSLog(@"%@>%@",str1,str3);11  } 結果:iOS7=ios7
 9)isEqualToString 比較2個字符串內容是否相等,返回BOOL(YES)值
實例代碼:
1 NSString *str1=@"hello";2 NSString *str2=[[NSString alloc]initWithString:str1];3 if([str1 isEqualToString:str2]){4     NSLog(@"%@ equal %@",str1,str2);5  }//結果:hello equal hello
10)uppercaseString 將小寫字母字符串轉爲大寫   NSString *str1=@"hello";NSString *str6=[str1 uppercaseString];
      結果爲:HELLO 
  11)lowercaseString 將大寫字母字符串轉爲小寫 。
 12)hasPrefix 判斷是否以某個字符串開頭(做爲前綴)例如 :
        NSString  str1=@"www.baidu.com";
        if([str1 hasPrefix:@"www"]){
            NSLog(@"yes");
        }  結果:yes
 13)hasSuffix 判斷是否以某個字符串結尾(後綴)例如:
    NSString  str1=@"www.baidu.com";
    if([str1 hasSuffix:@"com"]){
            NSLog(@"yes");
     }結果:yes
 14)substringFromIndex 從某個下標開始取子字符串(到結束)例如:
        NSString  str1=@"This is string A";
        NSString *res=[str1 substringFromIndex:1]; 結果:his is string A
 15)substringToIndex 從第一個字符開始取到某個下標的子字符串,不包括當前數字對應的字符,取當前數字下標前面字符
      例如:
        NSString  str1=@"This is string A";
        NSString  *res=[str1 substringToIndex:2];結果:Th
        [[str1 substringFromIndex:8] substringToIndex:5];結果: strin
 16)substringWithRange 根據範圍返回子字符串
        NSRange range={8,5};//直接給範圍值
        range=NSMakeRange(8, 5);//經過函數返回一個範圍的變量
        NSString  str1=@"This is string A";
        NSString res=[str1 substringWithRange:range]; 結果:strin
  17)rangeOfString 在字符串中查找子字符串,返回這個字符串的所在位置以及長度 NSRange
實例代碼:
1  NSString  str1=@"This is string A";2  NSRange  range=[str1 rangeOfString:@"string"]; 結果:{8,6}3   if(range.location!=NSNotFound){4           NSLog(@"find");5     }//結果:find
 18)使用 #if 0  代碼段… #endif 能夠讓系統跳過某段代碼不執行,例如:
        #if 0  NSLog(@「hello world!」); #endif  NSLog(@「我是第二段代碼!」); 
        執行結果:我是第二段代碼!
19)intValue、longValue、floatValue、doubleValue 可將字符串類型的數字轉換爲數值類型的數字 
       例如:
         NSString *str=@「88」;
         int a=[str intValue];
20)NSString 多個字符串的拼接
實例代碼:
1   NSString *str1=@"My name is";2   NSString *str2=@"John Zhang";3   NSString *str3=@"I am 45";4   NSString *s1=[NSString stringWithFormat:@"%@ %@ %@",str1,str2,str3];5   NSLog(@"s1=%@",s1); //結果:s1=My name is John Zhang I am 45
 21)initWithContentsOfFile  將文件內容讀取成字符串對象, 第一個參數是文件名(絕對路徑),第二個參數是編碼類型,
      第三個參數是錯誤回調信息  例如:
      NSString *content=[[NSString alloc]initWithContentsOfFile:/Documents/ocfile/Person.h" 
     encoding:NSUTF8StringEncoding error:nil];
22)直接打印對象,默認調用description方法,顯示對象的類名和地址,能夠重寫description方法,
        注意:若是直接輸出類對象中含有中文內容會有亂碼,因此含中文內容的類對象必須遍歷輸出。

 2、NSMutableString 可變字符串的操做
 1)initWithString 用不可變字符串建立可變字符串對象 例如:
      NSString *str=@"This is string B";
      NSMutableString *mStr=[[NSMutableString alloc]initWithString:str];
  2)insertString 在指定下標位置插入一個字符串 例如:
      NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
      [mStr insertString:@"hello " atIndex:0]; 結果:hello This is string B
 3)appendString 在字符串後面追加字符串 例如:
     NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
     [mStr appendString:@" shanghai」];結果:This is string B shanghai
 4)appendFormat 在字符串後面追加一個格式化字符串 例如:
     NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
     [mStr appendFormat:@" %d",20];結果:This is string B 20
 5)deleteCharactersInRange 將指定範圍的字符串刪除 例如:
     NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
     [mStr deleteCharactersInRange:NSMakeRange(0, 6)]; 結果: s string B
 6)replaceCharactersInRange 將指定範圍的字符串用新的字符串替換 例如:
1 NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];2 [mStr replaceCharactersInRange:NSMakeRange(2, 2) withString:@"IS"]; //結果:ThIS is string B3  //將字符串中全部的is替換爲IS4  NSRange range=[mStr rangeOfString:@"is"];5  while (range.location!=NSNotFound) {6       [mStr replaceCharactersInRange:range withString:@"IS"];7       range=[mStr rangeOfString:@"is"];8  }
 7)replaceOccurrencesOfString 將字符串中指定範圍內全部的is替換成IS 例如:
    NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
    [mStr replaceOccurrencesOfString:@「is」 withString:@「IS」 options:1 range:NSMakeRange(0, mStr.length)]; 
    結果:ThIS IS string B
 8)setString 修改字符串內容 例如: NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
    [mStr setString:@"hello"]; 結果:hello
 9)NSMutableString 實現多個字符串的拼接  
實例代碼:
1 NSString *str1=@"My name is";2 NSString *str2=@"John Zhang";3 NSString *str3=@"I am 45";4 NSMutableString *s2=[[NSMutableString alloc]initWithString:str1]; 5 6 [s2 appendString:str2];7 [s2 appendString:@" "];8 [s2 appendString:str3];9 NSLog(@"s2=%@",s2);   //結果:s2=My name isJohn Zhang I am 45ios

相關文章
相關標籤/搜索