<%--兼容IE7 必须放在 head 的第一行--%>
独上高楼网站
  • .NET的基本框架(二)
  • 一、处理字符串
    .NET 框架类(或System类)提供了大量可在构造.NET应用时使用的核心功能,这些功能适用于任何语言环境。本文的第一部分介绍了程序集、名称空间等基本概念以及System.Math和System.Random类。这是本文的第二部分,接着讨论其他几个很有用的类:System.String,System.Array,System.DateTime。

    值得指出的是,正如本文前面所提到的,当我们用VB.NET作为
    编程语言时,我们常常面临这样一种选择:是使用VB.NET语言内建的功能,还是使用等价的System类功能。在处理数组、日期/时间、字符串数据时,我们就面临这种选择。如果你曾经是一个VB 6.0程序员,你的第一个选择可能会是经过检验的、确实有效的老方法。但是,如果有可能,你最好还是改掉老习惯、采用新的.NET System类。为什么呢因为采用System类能够使你的代码更容易移植到其他.NET语言以及未来的VB.NET版本。

    System.String类提供了丰富的字符串处理能力。使用System.String类,我们可以:确定字符串的长度,查找子串,改变字符串的大小写,比较两个字符串,分割字符串,等等。

    确定字符串长度使用的是Length属性。例如,在下面的代码中,intLength的值将是4:

    Dim strColor As String = "blue"
    Dim intLength As Integer
    intLength = strColor.length

    我们用IndexOf方法从字符串找出第一个匹配的子串。如果能够找到子串,IndexOf方法返回子串的开始位置(第一个字符的开始位置为0);如果不能找到,则IndexOf返回-1。IndexOf的查找是大小写敏感的。IndexOf是一个被重载(Overload)的方法,它允许传入的参数包括:Char类型的字符,String类型的字符串,Char类型的字符数组。下面这个IndexOf.aspx页面示范了三种不同参数类型IndexOf方法的运用:












    这个页面的运行结果如下:

    IndexOf允许指定两个用来限制搜索的可选参数,它们分别代表搜索字符串的起始和结束位置。例如,下面的代码对chrVowels的搜索限制在第10到20个字符之间:
    strPhrase.IndexOf(chrVowels, 10, 20)

    LastIndexOf方法类似于IndexOf方法,但它搜索的是子串的最后一次出现。例如,如果你修改IndexOf.aspx页面,用LastIndexOf方法来取代IndexOf方法,则strWord的位置将是39而不是15。

    使用System.String的ToUpper和ToLower方法可以把字符串分别改成全部大写或者全部小写。例如:

    strUpper = "This is a mixed case sentence".ToUpper()
    strLower ="This is a mixed case sentence".ToLower()

    从这个例子可以看出,System.String的属性和方法既可以在字符串变量中应用,也可以直接在字符串文本中应用。

    你可以用Compare方法比较两个字符串是否相同。如果两个字符串相同,Compare方法返回0;如果第一个字符串小于第二个字符串,Compare返回一个负数;如果第一个字符串大于第二个字符串,Compare方法返回一个正数。Compare是一个静态方法(参见本文前面关于静态方法和实例方法的说明)。默认情况下,Compare对字符串的比较是大小写敏感的,且不考虑地区关系。例如,下面对Str1和Str2的比较将返回-1,它表示Str1小于Str2:

    Dim str1 As String = "abcd.com"
    Dim str2 As String = "abcd.Com"

    answer = String.Compare(str1, str2)

    我们可以向Compare传入第三个可选的参数。如果第三个参数指定为True,则字符串比较操作忽略大小写,比如下面的代码中answer的值将是0,即两个字符串相等。


    answer = String.Compare(str1, str2, True)

    正如IndexOf方法,Compare也是一个被重载的方法。我们可以向Compare方法传入第四个参数要求进行地区相关的比较;或者,我们也可以指定字符的起始和结束位置使得比较只对字符串的一部分进行。请参见.NET Framework SDK文档了解详细信息。Split方法把字符串分割成一个由子串构成的数组。使用Split方法时,我们必须指定用来分割字符串的、Char类型的分割字符。下面的Split.aspx页面示范了Split方法的应用:












    Split.aspx的输出结果如下:

    前面我们讨论了String类部分属性和方法的应用。String还包括许多其他成员,比如:从数组构造出字符串,把字符串中的一个字符替换成其他字符,删除字符串前面或者后面的空白字符,等等。

    二、操作数组
    我们可以通过System.Array类用各种方法处理数组。与前面的几个类一样,System.String类的许多功能重复了VB语言所具有的功能。但Array类也增加了一些传统VB语言不具备的功能,比如搜索和排序数组。

    Array类的GetLowerBound和GetUpperBound方法用于确定数组指定维的下界和上界。下面这个语句来自Split.aspx(参见前面的例子),它通过GetLowerBound和GetUpperBound方法确定strWords数组的边界:

    For i = strWords.GetLowerBound(0) to strWords.GetUpperBound(0)

    System.Array的Sort静态方法能够对一维数组的内容排序。Sort方法对数组的排序是大小写敏感的,而且它不能对一维以上的数组排序。调用Sort方法的语法下:

    Array.Sort(array_name)

    对于一维数组,我们还可以用Reverse方法颠倒数组元素的次序。Reverse方法的语法类似于Sort方法:

    Array.Reverse(array_name)

    下面的代码(来自ArraySort.aspx示例页面)示范了Sort和Reverse方法的应用:

    Dim strTerms() As String = {"JScript", "VB", "ASP", "ASP.NET", ".NET"}
    Dim i As Integer

    lblOutput.Text &= "Original Array
    "
    For i = strTerms.GetLowerBound(0) to strTerms.GetUpperBound(0)
    lblOutput.Text &= i & ": " & strTerms(i) & "
    "
    Next

    Array.Sort(strTerms)
    lblOutput.Text &= "
    After Sorting
    "
    For i = strTerms.GetLowerBound(0) to strTerms.GetUpperBound(0)
    lblOutput.Text &= i & ": " & strTerms(i) & "
    "
    Next

    Array.Reverse(strTerms)
    lblOutput.Text &= "
    After Reversing
    "
    For i = strTerms.GetLowerBound(0) to strTerms.GetUpperBound(0)
  • 与本文主题相关的文章
  • 泰州市国土资源局 王宏喜
    地址泰州市凤凰东路59号 邮编:225300
    电话0523-86883298 电子邮件Tzgtwhx@163.com  QQ:70712371
    苏ICP备07039034号