C# 字符串操作函数
时间:2011-04-11 来源:轻典
一、静态字符串String操作:
1、CompareTo(string str)
比较两个字符串,从第一位字符开始依次比较。返回值为1、0、-1
2、IndexOf(string substring)
返回子串在父串中第一次出现的起始索引(索引从0开始)
3、Join(string separator,string[] value)
用特定的分隔符连接字符串数组。返回值为拼接后的字符串。
4、Split(Char[])
返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组。返回值为string[]
string str1 = "天@天*开@心";
string[] str = str1.Split(new char[] { '@', '*' });
for (int i = 0; i < str.Length; i++)
{
Response.Write(str[i]+"<br />");
}
5、Substring(Int32)
检索子字符串。子字符串从指定的字符索引(从0计)开始,一直到最后。
Substring(Int32, Int32)
子字符串从指定的字符位置开始且具有指定的长度。
string s = "abcdefg";
string s1 = s.Substring(0,3); //abc
string s2 = s.Substring(3); //defg
6、Remove(Int32):该方法使用类似于Substring(Int32)
删除此字符串中从指定位置到最后位置的所有字符。
Remove(Int32, Int32):该方法使用类似于Substring(Int32)
从指定位置开始删除指定数目的字符。
7、Replace(string str1,string str2)
将字符串中的str1全部替换为str2
二、动态字符串StringBuilder操作:与String相比,动态字符串可以避免产生太多的临时字符串对象。// using System.Text;
1、Append(string str)
在字符串后追加内容,可以是string类型,也可以是其它类型,已重载。
string str = "123456";
StringBuilder sb = new StringBuilder(str);
sb.Append("7890"); //1234567890
2、其它方法类似于String,如:Insert、Remove、Replace。但没有Substring、Join、Split等方法。
StringBuilder转变为String,可以使用StringBuilder的ToString()方法。
三、字符串编码和解码:
C#中使用的字符串是Unicode编码类型的,如果要对字符串进行编码和解码操作,可以使用System.Text;命名空间中的类。一般用于URL操作。
1、编码:
string str = Server.UrlEncode(url);
但尤其C#会把空格编码成+号,而不是默认的20%,所以最好进行这样的操作:
string str = Server.UrlEncode(url).Replace("+","20%");
2、解码:
string url = Server.UrlDecode(str.Replace("20%","+"));
四、常用日期操作:
1、系统当前日期:
DateTime.Now.ToShortDateString() //2011-4-11
DateTime.Now.ToLongDateString() //2011年4月11日
注:也可以使用Today属性代替。
DateTime.Now.ToString() //2011-4-11 15:02:36
2、当前日期是星期几、是一年中第多少天、是否为闰年:
DateTime.Now.DayOfYear.ToString() //返回的是Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday
DateTime.Now.DayOfYear.ToString() //返回的是当前日期是一年中的第多少天
DateTime.IsLeapYear(Int32.Parse(DateTime.Now.Year.ToString())) //返回true表示闰年,false表示非闰年
3、获取当前日期的前N天或后N天:
DateTime AddDays(double value) //返回值DateTime类型,前N天,参数负,后N天,参数为正。
类似的方法还有:
AddYears、AddMonths、AddHours、AddMinutes、AddSeconds等。
4、获取两个时间的间隔:
DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now.AddHours(1);
TimeSpan ts = dt2 - dt1;
Response.Write(ts.ToString()); //01:00:00