如何重新排列字符串中的字符?

时间:2011-06-27 09:46:37

标签: .net vb.net string

我有一个这样的字符串:

1a2b3c4d5e6f7g8h

我需要重新安排它如下:

a1b2c3d4e5f6g7h8

你明白我的意思吗?对于每两个字符,数字字符交换位置使用以下字母,即从1a将其更改为a1

所以我的问题是如何重新排列字符串中的数字字符和字母?我的字符串总是有所说的模式,即一个整数,然后是一个字母,然后是一个整数,然后是一个字母,依此类推。

2 个答案:

答案 0 :(得分:4)

您可以通过简单的正则表达式替换来完成此操作。

Dim input As String = "1a2b3c4d5e6f7g8h"
Dim output As String = Regex.Replace(a, "(\d)(\w)", "$2$1")
Console.WriteLine(input & " --> " & output)

输出:

1a2b3c4d5e6f7g8h --> a1b2c3d4e5f6g7h8

答案 1 :(得分:3)

我认为这样的事情应该做你想做的事情:

    Dim input As String
    input = "1a2b3c4d5e6f7g8h"

    Dim tmp As Char()
    tmp = input.ToCharArray()

    For index = 0 To tmp.Length - 2 Step 2
        Dim a As Char
        a = tmp(index + 1)
        tmp(index + 1) = tmp(index)
        tmp(index) = a
    Next

    Dim output As String
    output = New String(tmp)