2010-04-27 14 views
9

Este es mi código:Recorte pasado "" delimitador de una cadena en 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 

con esto es conseguir una coma en el extremo de la cuerda. Pero si lo hago

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

todas las comas se eliminan.

¿Cómo guardo todas las comas y solo borro la última?

+0

utilice el formato de código en su pregunta (el 101010 cosa en su caja de herramientas de formato :)) – Ando

Respuesta

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

o

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

gracias, trabajaron perfecta – gerfe

2

Puede evitar el recorte de caracteres/adicional si se establece un delimitador dentro del bucle

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 
+0

me quita el cheque Si desde su puesto porque en realidad es más lenta . El tiempo de ejecución es lo suficientemente inteligente como para optimizar la asignación de esta manera, pero tiene que evaluar la condición if en cada iteración. –

+0

Ah, buen consejo, gracias –

0
temp = temp.TrimEnd() 

esta recorta los espacios al final de una cadena.

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

Eso lo hará y creo que es la manera más fácil.

+0

Esto funciona solo si el personaje anterior al anterior es diferente de la coma. En muchos casos (por ejemplo, en un archivo .csv), hay muchas comas repetidas al final del archivo. Prefiero el 'temp = temp.Trim(). Remove (temp.Length - 1)' que también es simple de leer. –

1

La función Trim() tiene un parámetro Char() (matriz estática de caracteres), no necesita pasar un Char explícitamente.

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

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

produciría la salida

"Hello ^_^ ^_^" 

El multiparamétrico .Trim() elimina los caracteres especificados desde el principio y el final de la cadena. Si solo desea recortar el comienzo o el final, use .TrimStart() o .TrimEnd() respectivamente.

0

sé que un poco extraño, pero me pareció que esto funciona para mí:

de Visual Basic:

Cada vez: mystring = "hoy en día, me gusta salir,,,," (menos de cinco comas y espacios)

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