Vbscript - перемещение символов вправо от запятой - PullRequest
2 голосов
/ 23 июня 2011

Это, вероятно, быстрый.Но у меня есть эта строка, которая выглядит следующим образом:

Gabriel, Peter

И я хочу, чтобы эта строка выглядела так:

Peter Gabriel

Я знаю о функциях замены и разбиения, ноЯ не уверен, как я могу сделать это настолько просто, насколько это возможно, без особых проблем?

Редактировать: На самом деле, я исправил это, немного повозившись.Вот код

    Dim strDisplayName as string
    strDisplayName = "Gabriel, Peter"
    Dim strTemp() As String
    strTemp = Split(strDisplayName, ",")
    strTemp(1) = Replace(strTemp(1), " ", "")
    strDisplayName = strTemp(1) & " " & strTemp(0)

Возможно, это не самое элегантное решение, но, по крайней мере, я могу сказать, что происходит: p

Ответы [ 4 ]

1 голос
/ 27 июня 2011

Вот решение:

Dim YourString As String = "Gabriel, Peter"

Dim Temp() As String = Split(YourString, ", ", -1, CompareMethod.Binary)

Dim Result As String = Temp(1) & " " & Temp(0)

'now Result = "Peter Gabriel"

Примечание: Это решение было проверено нормально в Visual Studio 2010.

1 голос
/ 23 июня 2011
    Dim strDisplayName As String = "Gabriel, Peter"
    Dim strTemp() As String = Split(strDisplayName, ",")
    Array.Reverse(strTemp)
    Dim PersonName As String = Join(strTemp, " ")

Это должно работать в VB.Net

1 голос
/ 23 июня 2011

Я не проверял это, потому что я на Mac, но вот как я думаю, это будет работать

dim fullname as string = "Gabriel, Peter"

dim order_name as string = fullname.substring(indexof(", ")+1) & " " & fullname.substring(1,indexof(","))

msgbox order_name
0 голосов
/ 23 июня 2011

Если вы знаете, что запятая присутствует:

aParts = split(oldvalue, ",")
newvalue = trim(aPart(1)) & " " & trim(aPart(0))

Возможно, вы могли бы сделать все это в одной строке и не нуждаться в промежуточном массиве (или, может быть, нет, мой VBScript немного ржавый), но это будетзначит, вызывать split дважды, поэтому, вероятно, все равно будет менее эффективным.

Или без разделения, просто используйте основные строковые функции:

newvalue = trim(mid(oldvalue, instr(oldvalue,",")+1) & " " & trim(mid(oldvalue, instr(oldvalue,",")-1)

Редактировать: I 'Я только что заметил, что вы отметили вопрос vb.net, а также vbscript.Выше vbscript, я мало знаю vb.net ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...