Trim last "," разделитель строки в VB.NET

Это мой код:

With ad.Tables(2)
    For i As Integer = 0 To .Rows.Count - 1
        If .Rows(i)("name") & "" <> "" Then
            temp &= .Rows(i)("name") & ", "
        End If
    Next
End With
temp = temp.Trim(",")
testing &= "&Name=" & temp & vbCrLf

С этим получается запятая в конце строки. Но если я делаю

temp = temp.Trim.Trim(",")

все запятые удаляются.

Как сохранить все запятые и удалить только последний?

Ответ 1

temp = temp.Trim().Substring(0, temp.Length - 1)

или

temp = temp.Trim().Remove(temp.Length - 1)

Ответ 2

temp = temp.TrimEnd(CChar(","))

Это будет сделано, и я думаю, что это самый простой способ.

Ответ 3

Вы можете избежать символа Trim/extra, если вы установите разделитель в цикле

Dim delimiter as string = ""
For i As Integer = 0 To .Rows.Count - 1
   If .Rows(i)("name") & "" <> "" Then
      temp &= delimiter & .Rows(i)("name")
      delimiter = ","
   End If
Next

Ответ 4

Функция Trim() имеет на ней параметр Char() (статический массив символов), вам не нужно явно указывать Char.

' VB.Net Version
", Hello ^_^ ^_^ ,,, , ,,   ,, ,".Trim({" "c, ","c})

//C# version
", Hello ^_^ ^_^ ,,, , ,,   ,, ,".Trim({' ', ','})

Произведет вывод

"Hello ^_^ ^_^"

Многопараметрический .Trim() удаляет указанные символы как из начала, так и из конца строки. Если вы хотите только обрезать начало или конец, используйте .TrimStart() или .TrimEnd() соответственно.

Ответ 5

Это работает:

dim AlarmStr as string="aaa , bbb , ccc ,  "
AlarmStr = AlarmStr.Remove(AlarmStr.LastIndexOf(","))

Ответ 6

Проверьте, завершен ли цикл, перед добавлением последней запятой. #очиститель

While dr.Read
   For c As Integer = 0 To dr.FieldCount - 1
       s.Append(dr(c).ToString.Trim)

       'This line checks if the loop is ending before adding a comma           
       If (c < dr.FieldCount - 1) Then s.Append(",")

   Next
   s.Append(vbCrLf)
End While

Ответ 7

temp = temp.TrimEnd()

это обрезает конечные пробелы из строки.

Ответ 8

Я знаю, что немного странно, но я нашел, что это работает для меня:

Visual Basic:

Каждый раз: mystring = "сегодня, я люблю выходить,," (менее пяти запятых и пробелов)

mystring.Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",")