字串是c#內建型別中唯一的引用型別。它具有2個特性:不可變性和密封性。
tips:使用智慧型感知找到過載方法
舉個例子,如果你輸入str,輸入句點.自動填充好字串,輸入c,並且輸入左括號(來填充好compare,可以看到彈出的智慧型感知。在智慧型感知彈出框的左側,會看到上下箭頭,標記為1-8,可以按鍵盤上下箭頭來遍歷所有可用的過載方法。
5.1.1 格式化字串
字串方法format可以自定義字串的外觀,返回型別為乙個新字串。
string str2 = "string 2";
string formatstring = "";
string strresult = string
.format(formatstring, str2);
console.writeline(
"string.format(, ) = \n
", formatstring, str2, strresult);
這個例子演示了format方法接受兩個字串引數,第乙個引數format string是乙個格式項,它將應應用到第二個引數上,下面是輸出:
string.format(, string 2) = [ string 2]
如果將15改為-15,結果會左對齊[string 2 ]。
strresult = string.format("currency: , hex: ''
", 10
); console.writeline(strresult);
格式化字串允許索引有乙個冒號分隔符。格式化項的結果是貨幣輸出。hex格式化項既設定了輸出大小,又進行了十六進製制轉換。這次只有乙個引數10,但是有兩個格式化項,它們都設為索引0,下面是輸出:
currency: $10.00, hex: ' a'
如果計算機設定為其他地區,輸出將符合你的貨幣符號和其他的標點符號。
標準數字格式化字串
標準數字格式化字串
含義c或者c
貨幣d或d
小數e或e
指數f或f
固定點g或g
常規n或n
數字p或p
百分比r或r
往返(確保將浮點轉換為字串,或將字串轉換為符點)
x或x十六進製制
自定義數字格式化字串
自定義數字格式化字串含義0
0佔位符
#數字佔位符
.小數點
,千位分隔符
%百分比佔位符
e/e +/- 0 (比如,e+0)
科學計數法
\轉義符
"xyz"或'xyz'
文字字串
;段分隔符
其他按其顯示的文字
5.1.2 比較字串
compare方法:接受兩個字串引數,並且返回int結果如下:
compareordinal方法:比較兩個字串,而與其本地化無關。
compareto方法:比較了當前例項與引數字串的值。它產生下面的整數結果:
5.1.3 檢查字串是否相等
檢查字串是否相等的乙個快速且常見的方法是使用==操作符。
另外,還可以通過例項或者靜態equals方法來檢查是否相等。
eg:靜態equals方法 boolresult=string.equals(str1, str2);
例項equals方法 boolresult=str1.equals(str2);
5.1.4 連線字串
連線操作符+ eg: strresult=str1+","+str2;
concat方法 eg: strresult=string.concat(str1, str2);
5.1.5 複製字串
copy方法用來返回字串的副本
string str1 = "string 1";
string
strresult;
strresult = string
.copy(str1);
console.writeline(
"string.copy() =
", str1, strresult);
輸出結果為:
string.copy(string 1) = string 1;
這個例子說明了copy方法建立了str1的乙個副本,結果是str1的副本放置到了strresult中,與strresult = str1; 是不同的。copy建立了字串的乙個新的例項。
2. copyto方法:如果不想複製整個字串,只想複製乙個子集,可用這個方法,它會將字串中特定數目的字元複製到字元陣列。
char chararr = newchar
[str1.length];
str1.copyto(
0, chararr, 0
, str1.length);
console.writeline(
".copyto(0, chararr, 0, str.length) =
", str1);
foreach (char character in
chararr)
", character);
}console.writeline("\n
");
輸出如下:
string 1.copyto(0, chararr, 0, str1.length) =
s t r i n g 1
3. clone方法:返回字串的乙個副本。clone方法返回乙個引用,該引用指向的例項與呼叫clone方法的例項相同,與=(賦值)操作符相同。因為clone方法返回乙個object引用,所以返回值在賦值之前,必須強制轉換為字串。eg: strresult=(string)str1.clone();
5.1.6 檢查字串內容
startwith方法:用來確定乙個字串字首是否與乙個特定字串匹配。
endswith方法:用來判斷乙個字串字尾是否與某乙個特定字串匹配。
contains方法:如果並不限制子字串是位於字串的起始或者末尾,可用此方法。
5.1.7 提取字串的資訊
indexof方法:返回字串的位置。如果沒有找到,返回-1.字串的出現位置是以0為基準。
lastindexof方法:返回乙個字串或者一組字元在字串中最後出現的位置。
substring方法:從字串的指定位置獲取子字串。第乙個引數是起始位置,第二個引數為長度。
5.1.8 填充和移動字串輸出
padleft方法:右對齊字串的字元,使用空格(預設)或者指定字元填充左側。
padright方法:左對齊字串的字元,使用空格(預設)或者指定字元填充右側。
trim方法:從乙個字串的起始或末尾移除空白字元或者指定的字符集。如果只關心移除字串的一邊,也可以使用trimend或者trimstart.
5.1.9 更改字串的內容
insert方法:返回乙個字串,在初始字串的指定位置放置了乙個指定的字串。
remove方法:從字串的某一位置刪除指定數目的字元。
replace方法:用來將出現的所有字元或者字串替換為乙個新的字元或者字串。
tolower方法:返回乙個轉換為小寫字元的字串副本。
toupper方法:返回乙個轉換為大定字元的字串副本。
tips:修改字串
嚴格地說,我們從未真正修改過字串。字串是不可變的,這意味著它無法改動。呼叫例如insert, remove或者replace這樣的方法時,實際上是clr建立了乙個新的字串物件,並且返回對這個新字串物件的引用。初始的字串物件從未改變過。
任何時候看到在字串上進行了這些操作,認為它應該改變的時候,都應該記住:事實上,只是將操作的結果賦值給了乙個新的字串變數。賦值字串操作的結果給同樣的變數也有效,它公公是將新字串物件的引用賦值給了同樣的變數。
5.1.10 分離和結合字串
split方法:提取由特定字符集分隔的單獨字串,並且將這些字串中的每乙個都放置到乙個字串陣列中。
join方法:使用乙個位於兩個字串之間的特定分隔符來連線它們。john方法是靜態的,你需要在string型別上呼叫它。
5.1.11 操作字串字元
length屬性:返回字串中字元的數目。
字串索引器:返回字串中指定位置的字元。索引器就是一對方括號,通常在陣列中使用,用於訪問物件中的元素。eg:str1[3]
tochararray方法:從乙個字串中將字元複製到乙個字元陣列中。
5.1.12 通過駐留池影響clr字串處理
intern方法:返回乙個字串的引用,該字串位於乙個稱作駐留池(intern pool)的地方。該方法接受乙個以程式設計方式建立的字串引數,並且返回駐留池中對同一字串的引用。
string str1 = "string 1";
string objstr1 = string.concat("
string
", "1"
);
string internedstr1 = string
.intern(objstr1);
console.writeline(
"(object)objstr1 == (object)str1 is \n",
((object)objstr1 == (object
)str1));
console.writeline(
"(object)internedstr1 == (object)str1 is \n",
((object)internedstr1 == (object)str1));
第乙個結果是false,第二個結果是true。詳情見p82.
字串方法彙總
1.定義字串直接量 var s abc 2.構造字串 var s new string 建立空字串 var s new string adafwv 字串初始化 3.計算字串長度s.length 注意 字串長度不可以像陣列一樣動態增長,但可使用下標來定義單個字元 4.查詢字串 charat 返回字串中...
SQL字串操作彙總
將字串中從某個字元開始擷取一段字元,然後將另外乙個字串插入此處 select stuff hello,world 4,4,返回值hel orld 返回從指定位置開始指定長度的字串 select substring hello,world 2,10 返回值ello,world 將字串中某段字元替換為指...
C 擷取字串的方法彙總
1.根據單個分隔字元用split擷取 string st gt123 1 string sarray st.split 結果sarray 0 gt123 sarray 1 1 2.利用多個字元來分隔字串 string str gtazb jiangjben 123 string sarray str...