首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

对split的用法感到疑惑解决办法

2012-01-21 
对split的用法感到疑惑PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handl

对split的用法感到疑惑
Private   Sub   Form1_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load
                Dim   a   As   String   =   My.Computer.FileSystem.ReadAllText( "c:\txt.ini ")
                Dim   b   As   String()   =   a.Split(New   String()   {ControlChars.CrLf},   StringSplitOptions.RemoveEmptyEntries)
                For   Each   c   As   String   In   b
                        MsgBox(c)
                Next
        End   Sub
===================================================
split函数的第一个参数接受一个string类型参数,别人跟我说ControlChars.CrLf是char类型的,先要转换成string类型,但是:
New   String()   {ControlChars.CrLf},这个就能把crlf转换成string   类型吗?
对New   String()   {ControlChars.CrLf}这个方法不是很明白:
1:为什么要用new   string   ,string是一个结构,怎么能用new   呢?
2:为什么要用   {}   这个符号?

=====================================================

提前感谢大家一下

[解决办法]
难得lz这么认真...我也引用点儿 MSDN 资料...

String.Split (Char[]) 返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组。
由 .NET Compact Framework 支持。
String.Split (Char[], Int32) 返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组。参数指定返回的子字符串的最大数量。
String.Split (Char[], StringSplitOptions) 返回包含此字符串中的子字符串(由指定的 Char 数组的元素分隔)的 String 数组。参数指定是否返回空数组元素。
String.Split (String[], StringSplitOptions) 返回包含此字符串中的子字符串(由指定的 String 数组的元素分隔)的 String 数组。参数指定是否返回空数组元素。
String.Split (Char[], Int32, StringSplitOptions) 返回包含此字符串中的子字符串(由指定的 Char 数组的元素分隔)的 String 数组。参数指定要返回子字符串的最大数量,以及是否要返回空数组元素。
String.Split (String[], Int32, StringSplitOptions) 返回包含此字符串中的子字符串(由指定的 String 数组的元素分隔)的 String 数组。参数指定要返回子字符串的最大数量,以及是否要返回空数组元素。

不算 .NET Compact Framework 的也有 5 个重载方法...“split函数的第一个参数要求是string”?lz在哪儿看到的?

至于返回值...

String (Char[]) 将 String 类的新实例初始化为由 Unicode 字符数组指示的值。

参数是Char[],返回值是 string 类实例...也就是只包含ControlChars.CrLf字符的字符串...为什么?自己好好想想...
[解决办法]
msgbox(String (Char[]))当然报错啊...

String (Char[])只是语法...你要实例化它嘛...

Dim value As Char()
...
Dim instance As New String(value)
...
MsgBox(instance)
[解决办法]
vrCr,vbLf,vbCrLf是VB中的显示常量,等效于Chr(10),Chr(13),Chr(10)+Chr(13),不是Char类型而是字符串类型,可以通过下面代码验证:
Dim obj as Object=vbCrLf
MsgBox(obj.GetType.Tostring)

New String(Char[])方法是通过Char数组实例化字符串.

new string() {vbCrLf}是实例化一个字符串数组,MsgBox的text参数不能为数组.

如果你要用vbCrlf分割字符串,可以用Split(yourstr,vbCrLf)方法.
dim Str as string = "A " & vbCrLf & "B "
dim StrArray() as String =Split(str,VBCrLf)

string.Split方法适用于字符串中存在多种分割符的情况,比如
dim str as string = "A.B,C?d "
dim StrArray() as string=str.Split(new char() { ". "c, ", "c, "? "c})

热点排行