黑馬程式設計師 String類和它的方法

2021-09-30 11:03:42 字數 2598 閱讀 7371

------- windows phone 7手機開發、.net培訓、期待與您交流! -------

string類在c#中是乙個使用非常頻繁的類,這篇博文總結一下c#中string類的常用方法。

首先string類是乙個引用型別,棧中儲存乙個指標指向託管堆中的唯讀字串,該字串不能更改,因而對字串每一次連線或分割操作都會造成先前的字串指標指向新開闢的區域。因而在操作頻繁的情況下會浪費大量的記憶體,只是封裝字串不得不付出的代價

string類中預設過載了兩個運算子!=和==,這導致==運算和string的equals方法幾乎有同樣的效果,而且equals也已經被多次過載,在比較字串時,我們不必區分是深度比較(比較託管堆中的字串)還是淺比較(僅僅比較兩個字串的引用)。很顯然,如果兩個字串變數的值相同,它們的引用一定相同

string類的方法有很多,僅僅把一些重點和常用的介紹一下:

eauals方法:比較兩個字串的值是否相同

string str1="hello";

string str2="hello";

console.writeline(str1.equals(str2));

public static bool operator ==(string a, string b);

==運算子的過載,過載後表現和equals方法完全一致

contains方法,查詢指定的子串是否在原串**現,過載數0,返回是否出現的布林值,使用示例:

string str=console.readline();

if(str.contains("大學"))

copy方法,拷貝字串到新子串,靜態方法,0過載,淺複製(複製引用),使用示例:

string str = "hello";

string str2 = string.copy(str);

console.writeline(str==str2);

indexof方法,比較子串和原串,一般情況下返回子串在原串中第一次出現的位置,9次過載,使用示例:

string str = "hello,world";            

console.writeline(str.indexof("o"));

結果為4,此處使用是的是引數為字串的過載

巢狀使用:

string str = "hello,world";          

console.writeline(str.indexof("o",str.indexof("o")+1));

答案為7,使用帶起始搜尋位置的過載

除此之外還有使用字元和跳過空白元素的過載

insert方法:在原串指定位置插入子串,0次過載,使用示例:

string str = "hello,world";

console.writeline(str.insert(1,"kk"));

結果為:hkkello,world

join方法,用自定的分隔符連線多個子串,5次過載,靜態方法,使用示例:

parms關鍵字:使得宣告為陣列的引數即可以接受定長陣列,也可以接受分開的任意個同型別引數

console.writeline(string.join("-", "123", "456", "789"));

輸出結果:123-456-789

spilt方法,按照指定的分割符將原串分割成多個子串,分割符從字元陣列或字串陣列中提取,5次過載,使用示例:

string str = "123-456-789-0";

string spstr = str.split('-');

for (int i = 0; i < spstr.length; i++)

可使用stringsplitoptions列舉指定是否跳過空白字元

spilt的綜合應用:敏感詞遮蔽器:

console.writeline("請您輸入要發表的內容");

string str = new string[10] ;

char ***字元 = new char[2];

string stracc = console.readline();

string strsp = stracc.split(***字元);

stracc = null;

for (int i = 0; i < strsp.length; i++)

console.writeline(stracc);

int k = 0;

for (int i = 0; i < str.length; i++)

}console.clear();

if (k > 0)

console.writeline(stracc);

------- windows phone 7手機開發、.net培訓、期待與您交流! -------

黑馬程式設計師 String類

一 string的一些特點 字串是乙個特殊的物件,字串一旦初始化就不可以改變.在這裡舉兩個例子就可以充分理解並說明字串的概念.string str1 abc string str2 new string abc 在這兩個表示式中str1 str2 結果返回的是 false.str1.equals s...

黑馬程式設計師 string

asp.net unity開發 net培訓 期待與您交流!1.string是乙個類,可以看成是char的唯讀陣列,string類中的值不可改變,改變字串的值,需要用 tochararray 方法 class program 2.string類有兩個方法,tolower touper 忽略大小寫,還有...

String類總結02 黑馬程式設計師

asp.net android ios開發 期待與您交流 02 字串緩衝區 其他常用物件 1.stringbuffer字串緩衝區 方法的呼叫鏈 insert 指定位置插入資料 setcharat int index char ch 修改指定位置上的字元 reverse 反轉緩衝區內的字元 delet...