1、单个字符也可以表示为字符串,还可以有长度为0的字符串(就是"",空字符串)。null和""的区别,String.IsNullOrEmpty
1 string s = " ";//" "不是empty
2
3 //s == "" 相等于 s == string.Empty
4 if (string.IsNullOrEmpty(s))//等价于s == null || s == ""
5 {
6 Console.WriteLine("空");
7 }
2、C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。
所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
3、如果要对char进行修改,那么就必须创建一个新的字符串,用s.
ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new
string(char[])这个构造函数(暂时不用细研究)来创建char数组的字符串。
一旦新的字符串被创建,那么char数组的修改也不会造成原来的字符串的变化。例子:将字符串中的A替换为a。
1 string s1 = "A123456";
2 char[] chars = s1.ToCharArray();//是根据s1复制一份char[]
3
4 chars[0] = ‘a‘;//不会影响s1
5 string s2 = new string(chars);//根据chars产生一份新的string
6
7 Console.WriteLine(s2);//输出a123456
8 Console.WriteLine(s1);//输出A123456
9
10 chars[0] = ‘c‘;//并不会影响s2
11 Console.WriteLine(s2);//输出a123456
4、练习题:C#时间格式转换汉字大写 比如:
"2009年9月5日" 转换成 "二零零九年九月五日",输入字符串,返回字符串。写成一个函数。string ToCH(string s)
1 string[] c = new string[]{ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖","年","月","日" };
2
3 try
4 {
5 string input = "2009年9月5日";
6 StringBuilder str = new StringBuilder();
7 for (int count = 0; count < input.Length; count++)
8 {
9 string temp = input.Substring(count,1);//截取字串的一部分,参数1为左起始位数,参数2为截取几位
10 switch (temp)
11 {
12 case "1": str.Append(c[1]); break;
13 case "2": str.Append(c[2]); break;
14 case "3": str.Append(c[3]); break;
15 case "4": str.Append(c[4]); break;
16 case "5": str.Append(c[5]); break;
17 case "6": str.Append(c[6]); break;
18 case "7": str.Append(c[7]); break;
19 case "8": str.Append(c[8]); break;
20 case "9": str.Append(c[9]); break;
21 case "0": str.Append(c[0]); break;
22 case "年": str.Append(c[10]); break;
23 case "月": str.Append(c[11]); break;
24 case "日": str.Append(c[12]); break;
25 default: break;
26 }
27 }
28 Console.WriteLine(str.ToString());
29 }
30 catch (Exception ex)
31 {
32 throw new Exception("已经过测试");
33 }
字符串 2014年6月7日12:51:07,布布扣,bubuko.com
时间: 2024-09-26 16:17:36