对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})