c#語言 字符串和string的區(qū)別?
字符串和string的區(qū)別?字符串是一種數(shù)據(jù)類型。例如,“ABCD”,“你好!“,”1314“都是字符串。每個(gè)字符串包含0個(gè)或更多字符。String是用于定義字符串變量的函數(shù)。它為變量分配存儲(chǔ)空間以保
字符串和string的區(qū)別?
字符串是一種數(shù)據(jù)類型。例如,“ABCD”,“你好!“,”1314“都是字符串。每個(gè)字符串包含0個(gè)或更多字符。
String是用于定義字符串變量的函數(shù)。它為變量分配存儲(chǔ)空間以保存字符串。
例如:String STR=“Hello”
String在這里聲明一個(gè)名為STR的字符串變量,并為其指定一個(gè)初始值“Hello”。
string和stringbuff的區(qū)別?
字符串:沒有方法更改字符串類中現(xiàn)有字符串中的字符。因?yàn)镴ava字符串中的單個(gè)字符不能更改,所以JDK文檔中名為string class的對(duì)象不能更改。
1)結(jié)構(gòu)ingBuffer:StringBuffer類屬于一個(gè)輔助類,它可以預(yù)先分配一個(gè)指定長度的內(nèi)存塊來建立一個(gè)字符串緩沖區(qū)。這樣,使用StringBuffer類的append方法來追加字符比使用string操作符向現(xiàn)有字符串中添加字符要高效得多。因?yàn)槊看问褂眠\(yùn)算符將字符添加到字符串時(shí),string對(duì)象都需要找到一個(gè)新的內(nèi)存空間來容納更大的字符串,這是一個(gè)非常耗時(shí)的操作。添加多個(gè)字符意味著一次又一次地將內(nèi)存重新分配給字符串。使用StringBuffer類可以避免這個(gè)問題。
2)StringBuffer是線程安全的,很容易在多線程程序中使用,但程序的執(zhí)行效率相對(duì)較慢。
在C 編程中,領(lǐng)導(dǎo)堅(jiān)持用char而不用string,string有那么可怕嗎?
在C中優(yōu)先使用字符串是一個(gè)好習(xí)慣。除非C的頑固習(xí)慣,否則應(yīng)該使用字符串而不是字符。
Char用于處理任何8位數(shù)據(jù)類型,如邏輯值、整數(shù)、字符ASCII碼等。要處理字符串,需要使用Char[]數(shù)組,這很麻煩,也很難控制。
String是一個(gè)模板類,專門用于處理字符串,并封裝了許多成員函數(shù)來處理字符串。它是C標(biāo)準(zhǔn)庫的一部分,所有C實(shí)現(xiàn)都支持它,并由C創(chuàng)始人推薦。
選擇使用哪一種并不困難。