vb.net将字符串行拆分为新字符串

时间:2015-12-08 11:18:40

标签: vb.net string arraylist split

我想将一个包含多行的字符串拆分为新字符串。

因为似乎人们在这里不了解我的问题还有一些进一步的信息:

我从XML文件中读取值到字符串中。其中一些字符串计算多行。现在我需要一个新字符串(变量)上的每一个字符串值,以便我可以告诉荷马喝啤酒并告诉莱尼上床睡觉而不是告诉整个团队去睡觉。 (希望这个故事可以帮助你:D)

为了保持这个简单,我将为这个样本定义一个“静态”字符串。

我将把我的三次尝试放在下面。我很想听听他们有什么问题。我还尝试使用listsenums我可以分割字符串,但没有定义新字符串。 但我认为对我的问题有一个更简单的解决方案...

Dim team As String = "Simpson, Homer" & vbCrLf & "Leonard, Lenny" & vbCrLf & "Carlson, Carl"

1

        Dim objReader As New StringReader(team)
        Dim tm() As String
        Dim i As Integer = 1

        Do While objReader.Peek() <> -1
            tm(i) = objReader.ReadLine() & vbNewLine
            i = i + 1
        Loop
  1.     Dim i As Integer = 0
    
        For Each Line As String In team.Split(New [Char]() {CChar(vbTab)})
            Dim tm(i) As String = ReadLine(team, i)
            i = i + 1
        Next
    

    3

    Dim tm() As String
    Dim i As Integer = 0
    Dim objReader As New StringReader(team)
    
    Do While objReader.Peek() <> -1
        tm(i) = ReadLine(team, i)
        i = i + 1
    Loop
    
  2. 和2.和3中使用的函数。

        Public Function ReadLine(ByVal sFile As String, Optional ByVal nLine As Long = 1) As String
    
        Dim sLines() As String
        Dim oFSO As Object
        Dim oFile As Object
    
        On Error GoTo ErrHandler
    
        oFSO = CreateObject("Scripting.FileSystemObject")
    
        If oFSO.FileExists(sFile) Then
            oFile = oFSO.OpenTextFile(sFile)
            sLines = Split(oFile.ReadAll, vbCrLf)
            oFile.Close()
    
            Select Case Math.Sign(nLine)
                Case 1
                    ReadLine = sLines(nLine - 1)
                Case -1
                    ReadLine = sLines(UBound(sLines) + nLine + 1)
            End Select
        End If
    
        ErrHandler:
        oFile = Nothing
        oFSO = Nothing
    
    End Function
    

    提前感谢任何共同的想法。

1 个答案:

答案 0 :(得分:1)

实际上我的问题很简单。对不起,如果我引起了混乱。

Module Module1
    Dim team As String = "Simpson, Homer" & vbCrLf & "Leonard, Lenny" & vbCrLf & "Carlson, Carl"

    Sub Main()
        Dim tm As String() = team.Split(vbLf)

        'Test
        Console.WriteLine(tm(0)) 'Homer
        Console.WriteLine(tm(1)) 'Lenny
        Console.WriteLine(tm(2)) 'Carl
    End Sub

End Module