天天看點

NSString/NSMutable字元串——韓俊強…

1、OC基本資料類型(簡單鋪墊)

 //   NSInteger 

在64 位下相當于long,在非64位下相當于 int;

//    CGFloat

在64位下相當于double  在非64位下相當于 float;

   //如何使用API文檔學習系統類庫中類

    //help --》Documentation and

API reference

    //快捷鍵 option + 左鍵

  cmmand + 左鍵

進入類的頭檔案(嚴重警告:進系統頭檔案之後,退出時一定要按幾次  cmmand +

z),看系統頭檔案适合已經對這個類有很大了解的學生

=========================================================

 3、//  

NSString 

  是一個字元串類,而且是一個不可變的字元串類,繼承自NSObject

,用NSString建立的字元對象,一經建立就不能修改;

//類簇:将一些私有的子類組合在一起形成一個公共的抽象的超類,那麼這個超類就是類簇;

   //建立一個字元串對象

    char *s = "lanou";

    NSLog(@"%s",s);

//oc中建立字元串

    NSString *str =

@"lanou";//快速建立字元串的方法

    NSLog(@"%@",str);

//建立空字元串

    NSString *str1 = [[NSString

alloc]init];

    NSLog(@"%@ %p

",str1,str1);

    str1 =

@"年後";//這種改變隻是指針的重指向

    NSString *str2 = [NSString

string];

    NSLog(@"==%@",str2);

    //建立不可變空字元串是沒有任何意義的

   //格式化建立不可變字元串對象

    NSLog(@"lanou");

    NSLog(@"lanou%@",@"i love

you");

    //我 拼接上 愛鳳姐

    NSLog(@"我%@",@"愛鳳姐");

    NSString *str3 =

[[NSString  alloc]initWithFormat:@"%@

%@",@"lanou",@"i love you"];

    NSLog(@"%@",str3);

    NSString *str4 = [[NSString

alloc]initWithFormat:@"我%@",@"愛鳳姐" ];

    NSLog(@"%@",str4);

   例子:字元串:@"優衣庫試衣間" ,@"趣事多"

    NSString *str6

=@"優衣庫試衣間";

    NSString *str7 = @"趣事多";

    NSString *str5 = [[NSString

alloc]initWithFormat:@"%@%@",str6,str7];

    NSLog(@"%@",str5);

    4、//周遊構造器格式化建立字元串方法

    NSString *str8 = [NSString

stringWithFormat:@"我在家裡洗衣覅,%@",@"你在優衣庫買衣服"];

    NSLog(@"%@",str8);

//建立字元串的另一種方式(現在已經不用了);

NSString *str9 = [[NSString

alloc]initWithString:@"我在藍歐37班"];

NSString *str10 = [NSString stringWithString:@"靠

,我也在藍歐37班"];

NSLog(@"%@",str10);

    例子:

   //

============================================

 5、 //将c語言字元串轉換為oc字元串比如:"ios"

  @"ios"

    NSString *str11 = [[NSString

alloc]initWithUTF8String:"ios"];

    NSLog(@"%@",str11);

    NSString *str12 = [NSString

stringWithUTF8String:"ios"];

    NSLog(@"%@",str12);

   6、//頭檔案初始化對象方法

 //将檔案中的字元串内容讀入到字元串對象中

  //第一個參數:檔案的路徑 

第二個參數:編碼格式  第三個參數: 如果出錯了傳回值存放的位置

    //初始化方法

    NSString *str13 = [[NSString

alloc]initWithContentsOfFile:

@"/Users/laouhn/Desktop/37-Product/Lesson/OC/LessonNSString-04/Lesson-04/han.txt"encoding:NSUTF8StringEncoding

error:nil];

    NSLog(@"%@",str13);

   //周遊構造器方法

    NSString *str14 = [NSString

stringWithContentsOfFile:@"/Users/laouhn/Desktop/37-Product/Lesson/OC/LessonNSString-04/Lesson-04/han.txt"

encoding:NSUTF8StringEncoding error:nil];

    NSLog(@"%@",str14);

==========================================

   7、 //操作字元串的方法

//計算字元串長度的方法

    NSString *ss =

@"lanou3g";

    NSUInteger len = [ss

length];//無符号長整形

    NSLog(@"%lu",len);

   一個中文占三個位元組

    NSString *ss2 = @"翔哥

今天晚上區如家吧?";

    NSLog(@"%lu",ss2.length);

8、//傳回字元串片段的方法

    NSString *str15 =

@"abcdefgdef";

    NSRange rang = {3,3};

    NSString *subString = [str15

substringWithRange:rang];

    NSLog(@"%@",subString);

9、//傳回字串在父串中範圍

    rang = [str15

rangeOfString:@"def"];

    NSLog(@"loctation:%lu length

: %lu",rang.location,rang.length);//不是點文法

   //擷取到從零位置到某個位置的字元不包含提供位置的字元

    NSString *str16 = [str15

substringToIndex:4];

    NSLog(@"%@",str16);

   //從某個位置開始擷取字元串,直到父串的結尾,包含這個停工未知的字元

    NSString *str17 =

[str15  substringFromIndex:4];

    NSLog(@"%@",str17);

//傳回格式化拼接的字元串

    NSString *str20 = [str16

stringByAppendingString:str17];

    NSLog(@"%@",str20);

    //練習3:把@“cang”後面

拼接上@“是你們的”

    NSString *cangString =

@"cang";

    NSString *newString

=  [cangString

stringByAppendingFormat:@"%@,%@",@"是你們的",@"不因不均"];

    NSLog(@"%@",newString);

    NSString *str18 = [cangString

stringByAppendingString:@"是世界的"];

    NSLog(@"%@",str18);

//字元串的替換

//将目标子串從父串中用我們給定的替換掉

    NSString *str19 = [str18

stringByReplacingOccurrencesOfString:@"cang"

withString:@"波多結衣"];

    NSLog(@"%@",str19);

    NSString *str21 =

@"中國北京中南海";

    //判斷字元串是否具有某個字首或者字尾

    BOOL isHas = [str21

hasPrefix:@"中國北京"];

    NSLog(@"%@",isHas ?

@"有這個字首":@"沒有這個字首");

    BOOL Has = [str21

hasSuffix:@"南海"];

    NSLog(@"%@",Has ?

@"有這個字尾":@"無這個字尾");

//=============================================

   //比較兩個字元串大小

    NSString *sstr3 = @"NBa";

    NSString *sstr4 = @"NBA";

    NSInteger n =

  [sstr3 compare:sstr4];

    switch (n) {

  case NSOrderedAscending:

      NSLog(@"%@

< %@",sstr3,sstr4);

      break;

      case

NSOrderedSame:

= %@",sstr3,sstr4);

NSOrderedDescending:

> %@",sstr3,sstr4);

  default:

    }

   //不區分大小寫的比較方式

    n = [sstr3

caseInsensitiveCompare:sstr4];

    NSLog(@"%ld",n);

 //===================================================

 10、 NSMutableString

  是可變字元串 ,繼承自Nsstring,是以Nsstring

所有的方法NSMutableString都可以調用

//這種建立字元串的形式可以提高一定的效率,如果存入的字元串小于開辟的虛拟空間長度,則直接放入,免去了開辟空間的時間,如果此時開辟的空間小于要放入字元串的長度,此時就要再開辟空間

    NSMutableString *mStr =

[[NSMutableString alloc]initWithCapacity:30];

    //插入一個字元串

    [mStr insertString:@"索甯"

atIndex:0];

    NSLog(@"%@",mStr);

    //建立可變字元串的另一種形式

    NSMutableString *mStr1 =

[[NSMutableString alloc]initWithString:@"我和他有一個約會"];

    NSLog(@"%@",mStr1);

//快速建立字元串,必須在後面加上  .mutableCopy

    NSMutableString *mStr2 =

@"我與僵屍有一個約會".mutableCopy;

    NSLog(@"%@",mStr2);

 11、 //可變字元串拼接

//格式化拼接

    [mStr2

appendFormat:@"%@",@"在日本島" ];

   //删除某段字元串

appendString:@"吃着炸雞喝着啤酒"];

   NSRange rang1 = {1,8};

deleteCharactersInRange:rang1];

    NSLog(@"-----%@",mStr2);

//=========================================================

   //改可變字元串

replaceCharactersInRange:NSMakeRange(2, 4)withString:@"任命廣場"];

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

    NSMutableString *mStr3 = @"i

am student come from DanCheng".mutableCopy;

   NSString * upFirst

=  [mStr3 capitalizedString];

    NSLog(@"%@",upFirst);

   //将所有的字母都大寫

  NSString *upAllWord =   [mStr3

uppercaseString];

    NSLog(@"%@",upAllWord);

   //将所有字母都小寫

    NSMutableString *mStr4 = @"I

AM STUDENT COME FROM DANCHENG".mutableCopy;

   NSString *loweAllWord = [mStr4

lowercaseString];

    NSLog(@"%@",loweAllWord);

//================轉載請注明出處=================

繼續閱讀