C# 字符串处理
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"; 2 3 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));
11.Split()方法。这个用的也很多。
public string[] Split(char[] separator);
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
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