OC字串型別方法總結

2021-06-23 02:44:06 字數 4138 閱讀 7835

//*  1. 建立物件

// 兩種方式:

//(1)便利構造器(+號方法) stringwithformat:

nsstring *str1 = [nsstring stringwithformat:@"iphone%d", 5];

nslog(@"str1 = %@", str1);

//(2)alloc+初始化方法 initwithformat:

nsstring *str2 = [[nsstring alloc] initwithformat:@"iphone%d", 4];

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

//(3)根據字串初始化oc字串物件,沒人用這種方法

nsstring *str3 = @"lanou";//儲存常量字串@「lanou」的位址

//2.求字串的長度

//length這個方法有返回值

nsuinteger length = [str1 length];

nslog(@"length = %lu", length);

//3 獲取字串中的某個字元

characteratindex有返回值,不可越界

reason:問題產生的原因,nscfstring == nsstring, 又是乙個減號方法,所以問題產生的原因是:讓乙個nsstring型別的物件,呼叫characteratindex:方法時,給丁的字串下標超出了範圍,即下標越界

//解決方案:將陣列下標修改範圍之內的數即可

unichar charac = [str1 characteratindex:4];

nslog(@"%c", charac);

//4.判斷是否以指定的字串開頭或結尾,返回值為bool型別

//例如:判斷乙個字串是否以http開頭,是否以.com結束

判斷是否以http開頭 hasprefix方法

//判斷是否以.com結束 hassuffix方法

bool issuffix = [str4 hassuffix:@".com"];

nslog(@"issuffix = %d", issuffix);

//5.查詢指定字串的範圍 rangeofstring:

nsrange range = [str4 rangeofstring:@"htt"];//nsrange是乙個結構體型別,range是乙個結構體變數,兩個成員,返回值為長整型

if (range.length == 0) else

//6.字串擷取(獲取字串)

nsstring *str5 = [nsstring stringwithformat:@"lanouishhg"];

//(1)獲取給定下標之後的字串,包含指定下標對應的字元(獲取的過程是拷貝的過程,要另外開闢一塊堆區空間,操作的是拷貝的副本,拷貝的和原字串雖然一樣,但是位址不一樣),會產生另外乙個物件;

//獲取hg

nsstring *substring1 = [str5 substringfromindex:8];//substring1是乙個物件

nslog(@"%@", substring1);

//(2)獲取給定下標之前的子串,從下標為0開始,但是不包括指定下標對應的字元

//獲取lan

nsstring *substring2 = [str5 substringtoindex:3];

nslog(@"%@", substring2);

//獲取指定範圍內的子串。

//獲取is nsmakerange(5, 2)

nsstring *substring3 = [str5 substringwithrange:nsmakerange(5, 2)];

nslog(@"%@", substring3);

//7.字串拼接

nsstring * str1 = [nsstring stringwithformat:@"lanou"];

nslog(@"%@",newstr1);

nslog(@"%@", newstr2);

//8.替換字串

nsstring *str2 = [nsstring stringwithformat:@"lanouidjkgjfjououououou"];

//(1)將ou替換成niubi stringbyreplacingoccurrencesofstring:後面的替換前面的

nsstring *str21 = [str2 stringbyreplacingoccurrencesofstring:@"ou" withstring:@"niubi"];

nslog(@"%@", str21);

//只將第乙個ou替換成niubi nsmakerange(3, 2)這個方法可以給定乙個範圍

nsstring *str22 = [str2 stringbyreplacingcharactersinrange:nsmakerange(3, 2) withstring:@"niubi"];

nslog(@"%@", str22);

//9,字串比較(公升序或降序)(重點)

nscomparisonresult result = [@"1111" compare:@"2222"];

nslog(@"%ld", result);

//10.字串和數值型別比較

//(1)@"123"將字串轉化為整數123

//從第乙個字元為空格,如果在遇到空格之外的字元時,將前面的空格忽略掉,繼續往下找,讀取數字,直到遇到非數字時結束

int value = [@" 123a" intvalue];

nslog(@"%d", value);

//(2)將數字轉為字串物件

nsstring *str = [nsstring stringwithformat:@"%d",2];

nslog(@"%@",str);

//11. 大小寫轉換

//(1)將@"lan ou"全部轉為大寫

nsstring *upperstring = [@"lanou ou" uppercasestring];

nslog(@"%@", upperstring);

//(2)將@"lan ou"全部轉為小寫

nsstring *lowerstring = [@"lanou ou" lowercasestring];

nslog(@"%@", lowerstring);

//(3)將@"lan ou"每個單詞的首字母大寫

nsstring *capital = [@"lanou ou" capitalizedstring];

nslog(@"%@", capital);

nsmutablestring *str = [nsmutablestring stringwithformat:@"lanouhenan"];

//對於可變字串的增刪改方法,都是在原字串基礎上進行修改,所以之後原字串的內容發生變化,所以無需返回值

//1,在原字串str基礎上拼接frank

nslog(@"%@", str);

//2.在字串str基礎上拼接frank

nslog(@"%@", str);

//3.刪除字串,在原字串基礎上刪除henan

[str deletecharactersinrange:nsmakerange(5, 5)];

nslog(@"%@", str);

//4,插入字串,在原字串基礎上插入lanou

[str insertstring:@"lanou" atindex:0];

nslog(@"%@", str);

//5.替換字串,在原字串基礎上將第乙個frank替換成duck

[str replacecharactersinrange:nsmakerange(10, 5) withstring:@"duck"];

nslog(@"%@", str);

OC中字串用法總結

注 nsstring不可變字串 1.通過字面量方式建立乙個字串 nsstring str 字串 2.輸出字串長度length nslog ld str.length 3.通過指定下標獲取字元內容 列印漢字時c要大寫 nslog c str characteratindex 下標數 4.系統提供的便利...

OC字串常用擷取方法

substringfromindex 字串擷取方法,從某索引開始擷取到最後 substringtoindex 從索引0開始擷取到某索引 substringwithrange 從某索引開始,擷取一定長度的字元 substringbyreplacingoccurrencesofstring 字串替換 i...

字串方法總結

doctype html en utf 8 viewport content width device width,initial scale 1.0 x ua compatible content ie edge document title head 屬性 str.length 獲取字串長度 方...