標籤:
C#編程中,對字串的處理措施非常多,比如去除字串兩端的空格 【trim】、去除字串兩端的字元‘0‘,給字串用某個字元補齊一定長度【padleft,padright】等等。
由於這段時間項目上用的比較多,基於此,把對字串中的一些常用的東西總結一下。
用 str 代表一個字串。
1.字串的長度:
str.Length;
2.擷取字串中的每個字元:
這裡有必要說到一個函數,剛看到的,挺興奮的,ToCharArray(),功能下面說。
string類型變數可以看成是char變數的唯讀數組,所以可
以通過ToCharArray()擷取每個字元放到一個字元數組中,下面舉個小例子: string str="I am a student";
char[] myChar = str.ToCharArray();
3.字串中字元的大小寫轉換:
str.ToLower(); str.ToUpper() 。
4.字串中去空格等
str.Trim();取出字串的所有前置和尾部的所有空格(不包括中間的)。也可以刪除其他字元,只要在一個char數組中指定這些字元即可。舉個小例子吧。
1 string str=" I am A student ";2 char[] TrimChars={‘ ‘,‘t‘,‘I‘};3 str = str.Trim(TrimChars);4 Console.WriteLine(str);
輸出:am A studen
Trim()只能去除字串首尾所有制定的字元。
TrimStart(), TrimEnd(),類似於Trim()。
下面說兩個可以添加空格的方法,str.PadLeft();str.PadRight(),有兩個重載的方法。
str.PadLeft(20),指定新字串的長度為20,str.PadLeft(20,‘#‘),除了指定長度,位元不夠時用‘#‘補。這兩個方法用於對齊字串。
5.字串比較大小:
string.Compare(str1, str2);
這個不是比較長度,傳回值有三個,str1>str2,結果為1;< 結果為-1;= 結果為0。"stu">" stu"。若是只比較兩個字串是否相等,用str1.Equals(str2),返回true和false。
6.尋找一個字串中是否包含指定的字串。
public bool Contains(string str1); 例:if(str.Contains("abc")){ ..... }
7.求某個字元或子串在字串中出現的位置。
1 string str="student";23 str.IndexOf("tu");
str.IndexOf("t");
str.IndexOf(‘t‘);
傳回值都是1。
另一種重載方式:public int IndexOf(string str,int startIndex);
這兩種方法若沒尋找到,傳回值是-1.
LastIndexOf()用法與IndexOf()相同,只是尋找方向相反,但是還是從前面算起。
如:int i= str.LastIndexOf(‘n‘); i的值為5。
8.截取字串:
兩種重載方式
1、str.Substring(3);一個參數表示從下標為3的字元開始截取到最後。
2、str.Substring(1,3);兩個參數表示從下標為2的字元開始,截取長度為3的子串。
9.字串的插入,刪除,替換。
插入:public string Insert(int startIndex,string value); 只有這一種重載方式。
刪除:public string Remove(int startIndex); 刪除從startIndex到結尾的字元。
public string Remove(int startIndex,int count);刪除從startIndex開始長度為count的字元。
替換:public string Replace(string oldString,string newString);
public string Replace(char oldChar, char newChar);
10.字串的合并,這個用的不多。
1 string[] arr={"I","am","a","student"};2 Console.WriteLine(string.Join("@", arr));
輸出:[email protected]@[email protected]
11.Split()方法。這個用的也很多。
public string[] Split(char[] separator);
1、用字串分隔:
1 using System.Text.RegularExpressions;2 string str="aaajsbbbjsccc";3 string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);4 foreach (string i in sArray) Response.Write(i.ToString() + "<br>");
輸出結果:
aaa
bbb
ccc
2、用多個字元來分隔:
1 string str="aaajbbbscccjdddseee"; 2 string[] sArray=str.Split(new char[2] {‘j‘,‘s‘}); 3 foreach(string i in sArray) Response.Write(i.ToString() + "<br>");
輸出結果:
aaa
bbb
ccc
ddd
eee
3、用單個字元來分隔:
1 string str="aaajbbbjccc";2 string[] sArray=str.Split(‘j‘);3 foreach(string i in sArray) Response.Write(i.ToString() + "<br>");
輸出結果:
aaa
bbb
ccc
C# 字串處理