天天看點

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);

例子:

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

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:

nslog(@"%@ = %@",sstr3,sstr4);

case nsordereddescending:

nslog(@"%@ > %@",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:@"%@",@"在日本島" ];

//删除某段字元串

[mstr2 appendstring:@"吃着炸雞喝着啤酒"];

nsrange rang1 = {1,8};

[mstr2 deletecharactersinrange:rang1];

nslog(@"-----%@",mstr2);

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

//改可變字元串

[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);

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

轉自:http://blog.csdn.net/qq_31810357

繼續閱讀