首页 > 代码库 > 字符串 2014年6月7日12:51:07

字符串 2014年6月7日12:51:07

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             }