21天学通ASP.NET
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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日”。

字符串的操作方法,远远不止这些,本节只列举了一些最常用的操作方法。至于字符串的其他操作方法,读者可参考有关书籍进一步研究。