如何根据特定数量的字符将长字符串拆分为多字符串?

时间:2015-06-07 18:47:34

标签: vb.net string

我有一长串Hex值,我想把它拆分成 几个字符串。

例如:

str = "313233343536373839"; which is "123456789" in Hexadecimal

我希望结果是这样的:

(如果除以的数字是3,则表示每行包含6  值。)

str =  "313233"
str =  str + "343536"
str =  str + "373839"

依旧......

我已经搜索了一种方法,但是所有内容都使用.Split,最后需要一个分割符,在这种情况下,它不存在。我怎样才能正确拆分?

2 个答案:

答案 0 :(得分:0)

所以你想把字符串 str 分成 numParts 部分吗?定义一个数组:

Dim strArray() As String

然后让您的用户输入部件数量:

Dim numParts As Integer
numParts = Console.readLine()
'you might want to put some validation in there to check it is a number

将数组重命名为part-1的数量(数组从0开始)

ReDim strArray(numParts - 1)

最后,设置for循环以将字符串拆分为多个部分:

For i as Integer = 0 to numParts - 1
    strArray(i) = str.Substring(i * Math.Floor(str.Length / numParts), Math.Floor(str.Length / numParts))
Next

这应该有效(虽然我现在无法访问VS,因此未经测试)。如果长度不除以numParts

,它将截断最后的数字

暂且不说:不要在这里问作业问题。

答案 1 :(得分:0)

这会做你所要求的

Module Module1

Sub Main()
    Dim myHex As Long = &H458D410FD4B204F
    Dim myStr As String = myHex.ToString
    Dim myDiv As Integer = 3
    Dim myPart As Integer = myStr.Length \ myDiv

    If myStr.Length > 0 AndAlso myStr.Length Mod myDiv = 0 Then
        For i As Integer = 0 To myDiv - 1
            Console.WriteLine("str = {1}{0}", myStr.Substring(i * myPart, myPart), If(i > 0, "str + ", ""))
        Next
    Else
        Console.WriteLine("my string {0} length doesn't divide by {1}", myStr, myDiv)
    End If

    Console.Read()
End Sub

End Module