Как переставить символы в строке? - PullRequest
2 голосов
/ 27 июня 2011

У меня есть такая строка:

1a2b3c4d5e6f7g8h

И мне нужно изменить его следующим образом:

a1b2c3d4e5f6g7h8

Ты понимаешь, о чем я? Для каждых двух символов место замены числового символа на следующую букву, то есть с 1a измените его на a1

Итак, мой вопрос как переставить числовые символы и буквы в строке ? У моей строки всегда есть указанный шаблон, то есть одно целое число, затем буква, затем целое число, затем буква и т. Д.

Ответы [ 2 ]

4 голосов
/ 27 июня 2011

Вы можете сделать это с помощью простой замены регулярных выражений.

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

Выход:

1a2b3c4d5e6f7g8h --> a1b2c3d4e5f6g7h8
3 голосов
/ 27 июня 2011

Я думаю, что-то вроде этого должно делать то, что вы хотите:

    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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...