字串 可變字串與不可變字串

2021-07-11 09:28:01 字數 3771 閱讀 1664

一 nsstring

是不可變字串,所有它所有產生其他字串方法都是生成乙個新的字串,而不會改變原來字串

第一種:字面量

,它是常量字串,儲存常量區

nsstring

*str = 

@"abc"

;第二種是通過

快捷的構造方法

nsstring

stringwithformat:

第三種方式

初始化方法 [

nsstring

alloc

] initwithformat:

二,字串的獲取

1、獲取字元長度

nsstring

*str = 

@"www.itcast.cn";

long

length = str.

length;

2、獲取子串

從哪個索引開始擷取到字串的末尾

(包含索引上字元)

nsstring

*str2 = [str 

substringfromindex:4

]; 從字元開頭開始擷取到索引的位置

(不包含索引上的字元)

nsstring

*str3  = [str 

substringtoindex:3

]; 從哪個位置開始擷取,擷取多長

nsrange

range = ;

nsstring

*str4 = [str 

substringwithrange

:range];

獲取某個子串所在的區間

nsrange

range1 =  [str 

rangeofstring

:@"itcast"];

nslog

(@"%@"

,nsstringfromrange

(range));

nsrange

range2 =  [str 

rangeofstring

:@"icast"];

if(range2.

location

== nsnotfound)

3、字串以什麼開頭

hasprefix  字首

hassuffix  字尾 4

、字串的比較

1)比較是內容

,從前往後乙個乙個的比較

nscomparisonresult

result = [str1 

compare

:str2];

nsorderedascending = -1l, str1 < str2

nsorderedsame,            str1 == str2

nsordereddescending       str1 > str2

- (nscomparisonresult

)compare:(

nsstring

*)string options:(

nsstringcompareoptions

)mask;

nscaseinsensitivesearch 

忽略大小寫

nsnumericsearch 

用於數值型別的比較 4

、字串大小寫的轉變

uppercasestring  大寫

lowercasestring  小寫

字元轉基本資料型別

inti = intstr.

intvalue;

double

d = intstr.

doublevalue;

float

f = intstr.

floatvalue;

把c語言字串轉換為

oc字串

[nsstring

stringwithcstring

:"hehe"

encoding

:nsutf8stringencoding];

把oc語言字串轉換為

c字串

const

char

*cstr = [str8 

cstringusingencoding

:nsutf8stringencoding];

在原有字串的末尾拼接另乙個字元產生乙個新的字串 :

字元替換(去掉字串中的空格)

- (nsstring

*)stringbyreplacingoccurrencesofstring:(

nsstring

*)target withstring:(

nsstring

*)replacement

使用某個字串替換掉原來字串中某個區間的字串

nsrange

range = [str 

rangeofstring

:@"itcast"];

str1  = [str 

stringbyreplacingcharactersinrange

:range 

withstring:@"

傳智播客"];

刪除原字串中的所有指定的字元

str1 =  [str 

stringbyreplacingoccurrencesofstring

:@"itcast"

withstring

:@""];

【掌握】去掉兩頭的空格

str1 = [str 

stringbytrimmingcharactersinset

:[nscharacterset

whitespacecharacterset

]];

在原來的路徑上拼接乙個路徑

刪除原來檔案路徑的副檔名.***

stringbydeletingpathextension:

為沒有副檔名的檔案路徑新增副檔名 :

二 nsmutablestring 

可變字元,它是

nsstring

子類可以進行

增改刪的操作,乙個字串需要經常修改其中的內容,那麼就使用

nsmutablestring

capacity 

表示容量,可以容納多少字元,如果你字串超這個儲存空間它擴充套件它

stringwithcapacity

- (void

)insertstring:(

nsstring

*)astring atindex:(

nsuinteger

)loc;展它插入字串

- (void

)deletecharactersinrange:(

nsrange

)range;刪除range範圍內的字串

- (void

nsstring

*)astring;

拼接字串

- (void

nsstring

*)format, ... 

ns_format_function(1

,2);

- (void

)setstring:(

nsstring

*)astring;

注意:可變字串不能使用字面量的方式賦值,字面量定義的是乙個不可以變字串.例如下面所寫錯誤

nsmutablestring *strmm = @"abc"; 

StrngBuffer可變字串

stringbuffer和string區別 stringbuffer和string區別 string 一單被建立後,值就不能改變,如果參與了操作,引用發生了變化,不是在原有的字串上操作,而是產生了新的字串。stringbuffer建立後值可以變化 增刪改 位址不會有變化,不會產生新的字串。strin...

可變長字串

目錄stringbuilder 其他可變長字串,jdk1.0提供,執行效率慢,執行緒安全字串緩衝區 執行緒安全的可變字串 字串行 字串 如果字串需要頻繁修改,可用stringbuffer構造方法stringbuffer 初始容量為16個字元 stringbuffer int capacity 構造乙...

mysql 可變字串 MySQL 字串型別

字串型 set enum blob text varchar char。1.char 字元 格式 char m 固定長度 m 表示嚴格限定的長度。char 5 varchar 5 5位元組1位元組 需要乙個位元組,儲存字串的總長度 abc abcde abcdef 超出限制,插入不成功 插入不成功 ...