Обрезать последний "," разделитель строки в VB.NET - PullRequest
14 голосов
/ 27 апреля 2010

Это мой код:

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(",")

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

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

Ответы [ 8 ]

14 голосов
/ 27 апреля 2010
temp = temp.Trim().Substring(0, temp.Length - 1)

или

temp = temp.Trim().Remove(temp.Length - 1)
11 голосов
/ 21 марта 2014
temp = temp.TrimEnd(CChar(","))

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

3 голосов
/ 28 апреля 2010

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

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
1 голос
/ 15 апреля 2018

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

dim AlarmStr as string="aaa , bbb , ccc ,  "
AlarmStr = AlarmStr.Remove(AlarmStr.LastIndexOf(","))
1 голос
/ 20 февраля 2015

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

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

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

Будет производить вывод

"Hello ^_^ ^_^"

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

0 голосов
/ 17 мая 2019

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

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
0 голосов
/ 10 апреля 2015

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

Visual Basic:

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

mystring.Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",")
0 голосов
/ 21 ноября 2012
temp = temp.TrimEnd()

обрезает завершающие пробелы в строке.

...