正文

Visual Basic.Net中的字符串处理2006-06-21 20:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/16090.html

分享到:

Visual Basic.Net中的字符串处理

作者:马金虎出处:天极网责任编辑: 方舟 [ 2004-08-25 15:08 ]
字符串处理是程序设计是最常见的操作,一般来说,掌握对字符串的处理也是开始学习一种新语言来的基础

 

  字符串处理是程序设计是最常见的操作,一般来说,掌握对字符串的处理也是开始学习一种新语言来的基础,对后续的深入学习是非常重要的,这也是为什么把对字符串处理放在本系列讲座最前面的原因。由于字符串处理所涉及的内容比较多,下面就选择Visual Basic .Net在处理字符串时的一些常见的、典型的问题加以介绍。
  一.用String关键字、String类和StringBuilder类创建字符串:

  Visual Basic .Net保留了很多早期Visual Basic的关键字、运算符和函数。但一般来说这些关键字、运算符和函数在.Net框架提供的.Net FrameWork SDK中又能够找到可以替代的类、方法等。在Visual Basic .Net创建一个字符串可有三种方式,具体如下:
  1. 使用关键字String来定义字符串变量,String关键字在早期的Visual Basic中也存在。具体的操作如下:

Dim sStr1 As String '定义String变量
sStr1 = " Hello World " '初始化此变量

  2. 使用String类来创建字符串,String类位于命名空间System中,具体如下:

Dim sStr1 As System.String
SStr1 = " Hello World "

  3. 使用StringBuilder类来创建字符串,StringBuilder类位于命名空间System.Text,具体如下:

Dim sStr1 As System.Text.StringBuilder
sStr1 = New System.Text.StringBuilder ( "Hello World" )

  下面就来看看上述三种Visual Basic .Net中创建字符串的方法的区别:第一种方法和第二种方法所得到的结果是一样的。都是定义一个不可变字符串。但第三种方法却是定义一个可变字符串。可变字符串和不可变字符串的区别,将在下面的内容中深入探讨。通过上面的三种不同的定义方法可见, Visual Basic .Net中不仅保留了原Visual Basic的特点,同时更可见,Visual Basic .Net是一个真正面向对象语言,因为第二种创建字符串的方法,其实是类经过实例化得到的一个实例。理解了这一点对掌握在Visual Basic .Net中处理字符串是非常有帮助的。

  二.Visual Basic .Net中的可变字符串和不可变字符串:

  通过上面内容中第一种和第二种方法创建的字符串一般就被称之为“不可变的”,这是由于一旦创建它就无法修改它的值。看似能修改String的方法实际上只是返回一个包含修改内容的新System.String类的实例。而第三种方法创建的字符串,就被称为“可变”字符串,此字符串的表示值为可变字符序列的类似字符串。之所以说其是可变的,是因为StringBuilder类实例的追加、移除、替换或插入字符方法可以对它进行修改。这些具体的方法将在下面内容种加以介绍。
三.Visual Basic .Net处理字符串的基本操作及其具体实现:

  字符串的基本操作一般是指对字符串插入、删除、替换和获得字符串的相关属性等操作。本节介绍在Visual Basic .Net处理字符串的这些基本操作是结合下面一个示例来具体说明Visual Basic .Net处理字符串的具体方法。这个示例主要的功能包括下列内容:

  1. 获取字符串长度,其中的难点在于获取中文字符串长度。

  2. 对字符串进行分割操作,即根据字符,把指定的字符串分割成若干字符串数组。

  3. 对字符串进行插入、删除、替换等操作。

  以下就是这个示例的具体实现步骤:

  1. 启动Visual Studio .Net。

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【Visual Basic项目】。

  4. 将【模板】设置为【Windows应用程序】。

  5. 在【名称】文本框中输入【字符串处理】。

  6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在“E:\VS.NET项目”目录中就产生了名称为“字符串处理”的文件夹,并在里面创建了名称为“字符串处理”的项目文件。

  7. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应操作:

  三个GroupBox组件。
  三个TextBox组件。
  一个Label组件。
  六个Button组件,分别是Button1至Button6,并在这六个Button组件拖入Form1的设计窗体后,分别双击这六个组件,这样系统会在Form1.vb文件分别产生这六个组件的Click时间对应的处理代码。

  8. 按照表01中数值来设定设定组件的主要属性:

组件类型 组件名称 属性 设置结果
Form
Form1 Text 字符串处理
Form1 MaximizeBox False
Form1 MinimizeBox False
GroupBox
GroupBox1 Text 获取字符串长度
GroupBox2 Text 分割字符串
GroupBox3 Text 字符串常用操作
Button
Button1 Text 获取长度
Button1 FlatStyle Flat
Button2 Text 分割
Button2 FlatStyle Flat
Button3 Text 增加
Button3 FlatStyle Flat
Button4 Text 删除
Button4 FlatStyle Flat
Button5 Text 插入
Button5 FlatStyle Flat
Button6 Text 替换
Button6 FlatStyle Flat
TextBox
TextBox1 Text 欢迎进入VB.NET学堂
TextBox2 Text 欢迎 进入 VB.NET学堂
TextBox3 Text  
Label
Label1 Text 操作结果:

            表01:【字符串处理】项目窗体中各组件的主要属性设定数值表

  并按照图01中各组件的位置和排列方式来调整窗体中各个组件:


图01:【字符串处理】项目的设计界面
 
9. 把Visual Studio .Net的当前窗口切换到【Form1.vb】,进入Form1.vbs文件的编辑界面。并在Form1.vb中创建窗体组件的代码区中添加下列代码,下列代码是创建并初始化一个可变的字符串实例,程序后面对字符串的“增加”、“删除”、“修改”、“替换”等操作都是以此为对象:

Dim sbStrBuilder1 As New System.Text.StringBuilder ( "Hello" )

  10. 实现对字符串的“获取长度”的功能。无论是不可变字符串(String类实例),还是可变字符串(StringBuilder类实例)都可以通过其“Length”属性来获取字符串长度,但“Length”属性在处理字符串中包含中文字符时,也把一个中文字符当成是“1”个长度,如“你好”字符串,如果不经处理就用“Length”获得的长度是“2”。但我们知道一个中文字符其实应该是2个长度,所以上面的“你好”字符串的长度应该是“4”。本节的解决方法是首先把字符串以缺省的编码方式转换成字节数组,由于汉字占用二个字节,而ASCII码只占用一个字节,所以通过获取字节数组的长度来得到一个字符串的真实长度了。具体的操作方法是用下列代码替换Form1.vb中Button1的Click事件对应的处理代码:

Private Sub Button1_Click_1 ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
 MessageBox.Show ( "字符串长度:" & TextBox1.Text.Length.ToString ( ) , "提示!" )
 Dim iLength As Integer
 Dim bLength As Byte ( )
 bLength = System.Text.Encoding.Default.GetBytes ( TextBox1.Text )
 '把字符串转换成字节数组
 MessageBox.Show ( "字符串长度:" & bLength.Length.ToString ( ) , "长度提示!" )
 '注意字符串相加
End Sub

  请注意:在Visual Basic .Net中字符串相加可以使用“&”运算符,也可以使用“+”运算符。

  11. 实现对字符串的“分割”操作。其实对字符串分割操作其实很重要,可以通过String类中提供了“Split”方法来实现。“Split”方法是以指定分割的字符(一个或多个),把一个字符串实例以给定的字符分割成一个字符串数组。下面的代码是把“欢迎 进入 VB.NET学堂”字符串,通过一个空格符号分割成一个字符串数组。并显示此字符串数组的第一个成员“欢迎”。具体的操作是用下列代码替换Form1.vb中Button2的Click事件对应的处理代码:

Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click
 Dim sByte As System.String ( ) = TextBox2.Text.Split ( " ".ToCharArray )
 MessageBox.Show ( sByte.Length.ToString ( ) & Chr ( 13 ) & Chr( 10 ) & sByte( 0 ) )
 '字符串数组,如果不定义数组的索引号,那数组的起点是从0开始
 '在这里要掌握如何在字符串中加入回车换行符
End Sub

  请注意:请注意上述代码中如何在Visual Basic .Net中定义字符串数组和回车换行符的具体实现方法。
12. 实现对字符串的“增加”、“删除”、“插入”、“替换”等操作。

  虽然String类实例也提供了上述类似的方法,但这些方法并非是对此String实例的操作,而是此String实例通过这些方法产生了另外的String类实例。所以在这里就不介绍String类这些操作的具体实现方法了。下面内容是介绍StringBuilder类实例如何实现“增加”、“删除”、“插入”、“替换”操作。这些操作对应StringBuilder类中的方法具体如下:

方法名称 说明
Append 在此实例的结尾追加指定对象的字符串表示形式。
Insert 将指定对象的字符串表示形式插入到此实例中的指定字符位置。
Remove 将指定范围的字符从此实例中移除。
Replace 将此实例中所有的指定字符或字符串替换为其他的指定字符或字符串。
                 表02:StringBuilder类中常用方法及其说明

  其实Append方法和Replace方法使用比较简单,另外二种方法相对复杂一点。这些方法的具体使用方法可参阅下面代码中的相关注释,这里就不一一介绍了。在【字符串操作】项目中实现对字符串“增加”操作的具体操作是用下列代码替换Form1.vb中的Button3的Click事件对应的处理代码:

Private Sub Button3_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button3.Click
 sbStrBuilder1.Append ( "你好" )
 'Append方法很简单,就是在StringBuilder类实例的后面增加指定字符串
 '具体到这一句就是在"Hello"后面增加"你好"
 TextBox3.Text = sbStrBuilder1.ToString ( )
End Sub

  在【字符串操作】项目中实现对字符串“删除”操作的具体操作是用下列代码替换Form1.vb中的Button4的Click事件对应的处理代码:

Private Sub Button4_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button4.Click
 Dim iStartLength As Integer = sbStrBuilder1.Length
 '获取字符串长度
 sbStrBuilder1.Remove ( iStartLength - 2 , 2 )
 'Remove方法的这种调用方式移除的sbStrBuilder1字符串的第“iStartLength - 2”字符后的2个字符
 TextBox3.Text = sbStrBuilder1.ToString ( )
End Sub

  在【字符串操作】项目中实现对字符串“插入”操作的具体操作是用下列代码替换Form1.vb中的Button5的Click事件对应的处理代码:

Private Sub Button5_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button5.Click
 Dim iStartLength As Integer = sbStrBuilder1.Length
 '获取字符串长度
 sbStrBuilder1.Insert ( iStartLength , "你好" , 1 )
 'Insert方法的这种调用方式是在sbStrBuilder1字符串的第“iStartLength”字符后插入“你好”一次
 TextBox3.Text = sbStrBuilder1.ToString ( )
End Sub

  在【字符串操作】项目中实现对字符串“替换”操作的具体操作是用下列代码替换Form1.vb中的Button6的Click事件对应的处理代码:

Private Sub Button6_Click ( ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles Button6.Click
 sbStrBuilder1.Replace ( "你好" , "您好" )
 '把sbStrBuilder1中的“你好”替换成“您好”
 TextBox3.Text = sbStrBuilder1.ToString ( )
End Sub

  至此,在上述步骤都正确执行,并全部保存后,【字符串操作】项目的全部工作就完成了。图02是程序编译后的运行界面:


图02:【字符串操作】的运行界面

  四.总结

  通过本文的介绍,如果对在Visual Basic .Net中创建字符串的三种方法及其区别,以及在Visual Basic .Net中获取字符串的长度、分割字符串和对字符串的删除、插入、替换、增加等操作,字符串的相加、字符串数组的定义等有所了解,那本节的目的就基本完成了。对于本文没有涉及到的Visual Basic .Net中字符串处理的其他操作,我想结合本节的内容,实现起来应该也没有什么问题。

阅读(3317) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册