字符串是 String 类型的对象,它的值是文本。在内部,这些文本存储为 Char 对象的只读集合,其中每个对象都表示一个以 UTF-16 编码的 Unicode 字符。C# 字符串末尾没有以 null 结尾的字符(这一点与 C 和 C++ 不同),因此 C# 字符串可以包含任意数目的嵌入式 null 字符(“ ”)。字符串长度表示字符数目,无论这些字符是否是由 Unicode 代理项对形成的。若要访问字符串中的各个 Unicode 码位,请使用 StringInfo 对象。
1、“改变”字符串中的字符
字符串是不可改变类型,一旦声明并赋值后就不能直接改变字符串中的值。不过我们可以通过把字符串转换为字符组数来实现改变字符串中的某个值。
static void Main(string[] args) { string str = "hello,world"; char[] chr = str.ToCharArray(); Console.WriteLine(chr); chr[0] = 'g'; str = new string(chr); Console.WriteLine(str); Console.ReadKey(); }
2、大小写字符之间的转换
大小写字符之间的转换主要用ToLower()和ToUpper()函数。
static void Main(string[] args) { //转换为小写 string str01 = "ABCDEF"; string str02 = "aBcDeF"; string str03 = str02.ToLower(); string str04 = str02.ToLower(); Console.WriteLine("ABCDEF转为小写后为:{0},aBcDeF转换为小写后为:{1}",str03,str04); //转换为大写 string str05 = "abcdef"; string str06 = "aBcDeF"; string str07 = str05.ToUpper(); string str08 = str06.ToUpper(); Console.WriteLine("abcdef转为大写后为:{0},aBcDeF转为大写后为:{1}",str07,str08); Console.ReadKey(); }
3、去除字符串两边的空格
函数:str.Trim()
static void Main(string[] args) { //去除字符串两边的空格 string str = " adc def "; string str1 = str.Trim(); Console.WriteLine("str的值:{0}, str1的值:{1}", str, str1); Console.ReadKey(); }
4、比较两个字符串的大小
(1)Equals(被比较字符串)方法,判断两个字符串是否相等,相等则返回true,否则返回false;
Equals()可以有两个参数,第二个是用来两个字符串的比较的一些规则;如:StringComparison.OrdinalIgnoreCase是两个字符串比较时不区分字符串的大小写。
static void Main(string[] args) { //比较两个字符串是否相等 string str1 = "abcdef"; string str2 = "ABCDEF"; bool comStr = str1.Equals(str2, StringComparison.OrdinalIgnoreCase); Console.WriteLine(comStr); Console.ReadKey(); }
(2)CompareTo(被比较的字符串),比较字符串的大小
CompareTo()比较两个字符串的大小,大于则返回1,小则返回-1,等于则返回0。
static void Main(string[] args) { //比较两个字符串的大小 string str1 = "abcdef"; string str2 = "ABCDEF"; int comStr = str1.CompareTo(str2); Console.WriteLine(comStr); Console.ReadKey(); }
5、字符串分割(Split)
(1)一般分割(返回一个数组)
static void Main(string[] args) { //字符串分割 string str1 = "a b!c,d|ef"; string [] comStr = str1.Split(' ','!','|',','); foreach (string item in comStr) { Console.WriteLine(item); } Console.ReadKey(); }
注意:split()里面值用单引号(‘’)不要写成双引号(“”)了。