2.3 字符串类型处理
字符串数据类型是程序中比较常用的一种数据类型。字符串的处理在程序中是极为重要的,毕竟程序代码及HTML代码也是字符串。本节将简单介绍一些常用的字符串操作。
2.3.1 字符串比较
C#语言中字符串的比较,是比较字符串的长度大小,通过 CompareTo 方法来实现,其语法如以下代码所示。
stringA. CompareTo(stringB)
该方法的执行结果将返回一个32位整数,其比较关系如表2-2所示。
表2-2 字符串比较关系表
【范例2-1】比较“孟丽君”、“包拯”两个字符串,如示例代码2-1所示。
示例代码2-1
01 var fn_name= "孟丽君"; //定义一个妇女姓名的隐含类型变量 02 string zf_name= "包拯"; //定义一个丈夫姓名的字符串变量 03 Response .Write(zf_name.CompareTo(fn_name).ToString()); //输出比较结果
【执行结果】在浏览器中浏览该页面,结果如图2-1所示。
图2-1 字符串比较结果显示
【代码解析】第03行代码通过CompareTo方法,将变量zf_name中的字符串(“孟丽君”)与变量fn_name中的字符串(“包拯”)进行比较,结果显示-1,说明变量zf_name比fn_name变量的字符串长度小。
注意:Response.Write 为Web 中页面输出函数。在 C#语法中所有数据类型都可以通过ToString方法,将数据以字符串的形式输出。
2.3.2 字符串长度的获取
字符串长度是通过Length属性来获取的,其代码如下所示。
01 string fn_name= "孟丽君"; //定义一个妇女姓名的字符串变量 02 Response .Write(fn_name.Length.ToString()); //输出长度
2.3.3 字符串查找索引
字符串查找索引经常使用IndexOf方法来实现,其语法如下:
stringA. IndexOf (stringB)
stringA 为被查找字符串,stringB 为要查询的字符串。如果查询结果是负值,则表示在stringA字符串中找不到相应的stringB字符。如果是正数,则表示stringB在stringA中的起始位置。
【范例2-2】查询“奥运”在字符串“中国奥运加油!”中的位置,代码如示例代码2-2所示。
示例代码2-2
01 string strZgoy= "中国奥运加油!"; //定义一个字符串变量 02 Response.Write(strZgoy.IndexOf("奥运").ToString()); //查找“奥运”在字符串 //中的起始位置
【执行结果】在浏览器中浏览该页面,结果如图2-2所示。
图2-2 字符串查找结果显示
【代码解析】上面第02行代码使用.IndexOf查询字符串“奥运”的起始位置,运行结果显示2。这表示“奥运”是在字符串“中国奥运加油!”中的位置2上。
提示:字符串变量的位置是以0开始的。例如上面的代码“中”字符是在strZgoy字符串变量的0位置上,所以“奥运”在strZgoy字符串变量是在位置2上。
2.3.4 清除空格
字符串的清除空格操作就是要清除字符串前面或后面的空格,该操作可以防止用户在输入框中输入无效字符“空格”,以方便在程序中进行字符串比较。该操作通过Trim方法来实现,其代码如下:
01 string strZgoy= " 中国奥运加油! "; //定义一个字符串变量 02 Response.Write(strZgoy.Trim()); //清除字符串的前后空格
上面第01行代码定义一个前后有空格的字符串,第02行通过Trim方法清除空格,最后输出页面。
2.3.5 字符串的插入操作
字符串的插入操作就是从字符串某一位置开始,插入指定的字符。该操作是通过Insert来实现的。
【范例2-3】在字符串“中国奥运加油!”的位置2上,插入字符串“北京”,代码如示例代码2-3所示。
示例代码2-3
01 string strZgoy= "中国奥运加油!"; //定义一个字符串变量 02 Response.Write(strZgoy.Insert(2,"北京")); //在位置2上插入“北京”,并输出页面
【执行结果】浏览该页面,结果如图2-3所示。
图2-3 字符串插入操作结果显示
【代码解析】上面第02行代码,在字符串“中国奥运加油!”位置2上插入字符串“北京”。
2.3.6 字符串的删除操作
字符串的删除操作就是要查找字符串从某位置开始的、一定长度的字符。该字符是通过Remove(n,m)方法来实现的。参数n为开始的位置值,参数m为要删除字符的长度。
【范例2-4】在字符中位置2开始删除两个字符,代码如示例代码2-4所示。
示例代码2-4
01 string strZgoy= "中国奥运加油!"; //定义一个字符串变量 02 Response .Write (strZgoy.Remove (2,2)); //从位置2开始删除两个字符
【执行结果】浏览该页面,结果如图2-4所示。
图2-4 字符串删除操作结果显示
【代码解析】上面第02行代码,在字符串“中国奥运加油!”位置2上删除两个字符。结果显示“中国加油!”。
2.3.7 字符串的替换操作
字符串的替换操作就是查找出一个原来字符,并将其替换成一个新字符。该操作是通过Replace方法来实现的。
【范例2-5】将“中国奥运”替换成“北京”,代码如示例代码2-5所示。
示例代码2-5
01 string strZgoy= "中国奥运加油!"; //定义一个字符串变量 02 Response.Write(strZgoy.Replace("中国奥运","北京")); //将“中国奥运”替换成“北京”
【执行结果】浏览该页面,结果如图2-5所示。
图2-5 字符串替换操作结果显示
【代码解析】第 02 行代码使用 Replace 方法。将字符串“中国奥运”替换成“北京”。结果为“北京加油!”。
2.3.8 字符串的截取操作
字符串的截取操作是指通过 Substring(n,m)方法来获取字符串中的部分字符的。参数 n 为开始的位置值,参数m为要截取字符的长度。
【范例2-6】从位置2开始截取4个字符,代码如示例代码2-6所示。
示例代码2-6
01 string strZgoy= "中国奥运加油!"; //定义一个字符串变量 02 Response .Write (strZgoy.Substring(2,4)); //从位置2开始截取4个字符
【执行结果】浏览该页面,结果如图2-6所示。
图2-6 字符串截取操作结果显示
【代码解析】上面代码中第02行代码,通过Substring方法截取从位置2开始的4个字符。
2.3.9 字符串的连接操作
字符串的连接操作是通过加号“+”来实现的。
【范例 2-7】在一个身份证号码中截取年月日,并以中文日期的形式输出,代码如示例代码2-7所示。
示例代码2-7
01 string strZgoy= "440521197603270011"; //定义身份证 02 string dCstq= strZgoy.Substring(6, 4) + "年" + //通过Substring截取 //年月日 03 strZgoy.Substring(10, 2) + "月" + 04 strZgoy.Substring(12, 2) + "日"; 05 Response.Write(dCstq); //输出中文日期
【执行结果】浏览该页面,结果如图2-7所示。
图2-7 字符串连接操作结果显示
【代码解析】上面第02~04行代码用于截取身份证中的出生日期。第02行代码截取身份证第6个位置开始长度为4的字符,即截取日期中年的数值。并且在这个年的数值字符串后面加上“年”。第03行代码截取身份证第10个位置开始,长度为 2 的字符,即取月的数值。并且在这个月的数值字符串后面加上“月”。第04行代码截取第12个位置开始,长度为 2 的字符,即取日的数值。并且在这个日的数值字符串后面加上“日”。执行页面输出,结果显示“1976年03月27日”。
字符串的操作方法,远远不止这些,本节只列举了一些最常用的操作方法。至于字符串的其他操作方法,读者可参考有关书籍进一步研究。