C#字串的定義和使用
阿新 • • 發佈:2019-02-14
C#中的字元char和字串string幾乎說是差不多,但是有一點點的區別,
string(字元,次數)//這個是該字串重複的次數,例如:s=new string('a',1000);//就是重複1000次例如:char[] ch = new char[] { 'F','o','l','u','n','t' };
//輸出的時候就是:Folunt 如果想要改變其中的一個字元,就使用ch=[0]='f';此時輸出的結果是folunt
而字串其實就是“一串字元”,是字元就可以一個一個的訪問;
數組裡面可以通過訪問修改,但是字串是不能這樣修改的:例如:str1[1]='為';是錯誤的;
string型別的字串只能通過漸漸修改字串的中間字元
例如:
string str ="我是一個字串";
char[] ch=str.ToCharArray();
ch[1]='為';
str=new string(ch);
Console.WriteLine(str);
常見的字串的用法:
1:字串大小寫轉換
string<strName>.ToUpper();
string<strName>.ToLower();
例如:在等待使用者輸入的時候,常常不考慮使用者輸入的使用者名稱大小(或一個程式中規定使用的大小寫)
可以將使用者的輸入全部轉換成小寫,或大寫再來進行比較
如:
Console.WriteLine("請輸入使用者名稱");
string uid=Console.ReadLine().ToLower();//再將uid與系統中的資料進行比較;
2:移除首尾指定字元
方法原型
string <strName>.Trim();//移除首尾的空格
string<strName>.TrimStart();//移除開頭的空格
string<strName>.TrimEnd();//移除結尾的空格;
如果要指定移除的內容,可新增一個char陣列作為引數
string <strnName>.Trim(char[] ch);
例如:
string str="abfcefcbcfa";
//將首尾的abc全部去掉
str=str.Trim('a','b','c');
///Trim裡面的順序沒有任何關係,輸出的結果是;str="fcefcbcf";
///在這裡,Trim工作的時候,會先查詢字串的前面的字元有沒有abc,一旦沒有,就開始從字串的後面開始檢測,中間的不做考慮;
3:字串的比較方法
1:Compare()方法:
int res=string.Compare(string str1,string str2);
按照字典排序比較
當str1>str2時,返回1
當str1=str2時,返回0
當str1<str2時,返回-1
2:Equals()方法
bool <strName>.Equals(string str);
比較如果相等就返回true,否則返回false
4:字串的合併與分割
合併Join方法
將陣列str中的內容拼接成一個字串,並在對應陣列的每兩項間新增分隔符;
例如:
string[] strs = { "沒戲","卡卡","鄭大世","凹凸曼"};
string str = string.Join("|",strs);
Console.WriteLine(str);
分割split方法
將字串陣列中的字元分割,分割後得到的內容放到一個數組中
例如:
//分析下面這句話,提取這句話的單詞
string str="Hello,How are you?";
string[] words=str.Split(' ',','',''?');
注:返回陣列中可以有空字串項,如果要去掉這些字串項,可以使用例如這樣的:
string str="Hello,How are you?";
string[] words=str.Split(new char [] {' ',',','?'},StringSplitOptions.RemoveEmptyEntries);
5:字串的查詢
Contains方法
例如:Console.WriteLine("隨便輸入一串字母");
string str =Console.ReadLine();
if (str.Contains("abc"))
{
Console.WriteLine("字串{0}中包含{1}",str,"abc");
}
else
{
Console.WriteLine("字串{0}中不包含{1}",str,"abc");
}
IndexOf()方法//返回的是查詢的字元的位置;
string str
///使用者名稱和域名
int num =str.IndexOf('@');
//int num1=str.LastIndexOf('@');這行程式碼是從後面忘前面查詢;
string user=str.Substring(0,num);
string field=str.Substring(num+1);
///Substring(開始的位置[,擷取字串長度])
///當有兩個引數的時候,從編號開始擷取,擷取長度為指定長度
///如果字串長度不及擷取長度,就會報錯
///當使用第一個引數的時候,那麼會從指定的位置開始,擷取後面所有的內容;
string user=str.Substring (3);
例2:
// 0123456789
string str="
int num1=str.IndexOf('@',0);
int num2=str.IndexOf('@',3);
int num3=str.IndexOf('@',6);
///IndexOf使用就是從字串左邊開始找到由引數規定的字元,找到一個就返回一其位置
6:字串的插入,移除和替換
插入:
string str="Folunt_Jion";
string inser="我是一個插入進來的字串";
str=str.Insert(1,inser);
//則得到的新字串是str="F我是一個插入進來的字串olunt_Jion"
7:判斷結束或開始
判斷字元<strName>串是否以某字元開始或結束
bool <strName>.StartsWith(string str);
bool<strName>.EndsWith(string str);
8:string.Format();使用的方法就是把引數裡面的組合拼接起來
例如:Console.WriteLine("{0}{1}{2}",1,2,3);///得出的結果就是:123;是對引數裡面的拼接
string str=string.Format("{0}{1}{2}","字串","拼接","123");//其實CW就是呼叫這個方法;