2008-09-16 17 views
10

Tengo una cadena que es como a continuación.¿Cómo puedo Recortar la coma inicial en mi cadena

,liger, unicorn, snipe 

en otros idiomas Estoy familiarizado con sólo puedo hacer una string.trim (""), pero ¿cómo puedo hacer que en C#?

Gracias.


Ha habido un montón de ida y vuelta sobre la función StartTrim. Como varios han señalado, el StartTrim no afecta la variable principal. Sin embargo, dada la construcción de los datos frente a la pregunta, me siento desgarrado con respecto a qué respuesta aceptar. Es cierto que la pregunta solo quiere que el primer carácter recortado no sea el último (si lo hay), sin embargo, nunca habrá un "," al final de los datos. Entonces, dicho esto, voy a aceptar la primera respuesta que dice usar StartTrim asignado a una nueva variable.

+0

Sugiera agregar la etiqueta ".net", ya que no se trata de un idioma específico. –

+0

85 vistas 10 respuestas y NADIE piensa que esta pregunta vale +1? – Keng

+0

@Keng tal vez porque este tipo de cosas es un poco trivial para las personas de C# – chakrit

Respuesta

11
string sample = ",liger, unicorn, snipe"; 
sample = sample.TrimStart(','); // to remove just the first comma 

O quizás:

sample = sample.Trim().TrimStart(','); // to remove any whitespace and then the first comma 
+0

Gran respuesta, también agregué en TrimEnd también sample.Trim(). TrimStart (','). TrimEnd (','); –

0
if (s.StartsWith(",")) { 
    s = s.Substring(1, s.Length - 1); 
} 
21
string s = ",liger, unicorn, snipe"; 
s.TrimStart(','); 
+0

¿Ese método _modifica_ la cadena? ¿No debería volver a asignarse a s ala s = s.TrimStrat ('/'); ? – chakrit

+0

no estoy seguro, pero no seduce a la pregunta. – DevelopingChris

+0

No, las cadenas son inmutables. Todas las funciones de manipulación devuelven una nueva cadena con los cambios aplicados. –

0
string t = ",liger, unicorn, snipe".TrimStart(new char[] {','}); 
0
string s = ",liger, tiger"; 

    if (s.Substring(0, 1) == ",") 
     s = s.Substring(1); 
+0

solo fyi, puede hacer las primeras acciones con (, y no tiene que hacer toda la subcadena solo para obtener el primer carácter. – DevelopingChris

+0

Gracias ChanChan. A menudo recurro a un pequeño subconjunto de .Net que "espero" que sea allí, en función de mi experiencia previa con otros idiomas. –

0

Quizás quiso decir recortar todas las instancias de "" en esa cadena?

En cuyo caso, usted puede hacer:

s = s.Replace(",", ""); 
+0

Solo quiere eliminar la primera coma. –

1

"ligre,, snipe unicornio" .trim ('') -> "ligre, UNICOR, snipe" cadena Try

+0

La pregunta pide eliminar la 'coma inicial', pero Trim() "Elimina todas las ocurrencias iniciales y finales de un conjunto de caracteres especificados del objeto String actual. "http://msdn.microsoft.com/en-us/library/system.string.trim.aspx – Andrew

1

. Recorte (',') y vea si eso hace lo que quiere.

+0

La pregunta solicita eliminar la 'coma inicial', pero Trim() "Elimina todas las ocurrencias inicial y final de un conjunto de caracteres especificados del objeto String actual. " http://msdn.microsoft.com/en-us/library/system.string.trim.aspx – Andrew

0

Simplemente use Subcadena para ignorar el primer carácter (o asígnelo a otra cadena);

string o = ",liger, unicorn, snipe"; 
string s = o.Substring(1); 
4

.net las cadenas pueden hacer Trim() y TrimStart().Debido a que toma params, se puede escribir:

",liger, unicorn, snipe".TrimStart(',') 

y si usted tiene más de un carácter para recortar, puede escribir:

",liger, unicorn, snipe".TrimStart(",; ".ToCharArray()) 
+0

wow ... esa cadena a matriz de caracteres es un truco que nunca antes había visto. – chakrit

+0

o 'nuevo [] {',', ';', ''}' –

1

Nota, la cadena original se deja intacto, Trim le devuelve una nueva cadena:

string s1 = ",abc,d"; 
string s2 = s1.TrimStart(",".ToCharArray()); 
Console.WriteLine("s1 = {0}", s1); 
Console.WriteLine("s2 = {0}", s2); 

impresiones:

s1 = ,abc,d 
s2 = abc,d 
3

aquí es una manera fácil de no producir el coma que lleva para empezar:

string[] animals = { "liger", "unicorn", "snipe" }; 
string joined = string.Join(", ", animals); 
1
string s = ",liger, unicorn, snipe"; 
s = s.TrimStart(','); 

Es importante asignar el resultado de TrimStart a una variable. Como dice en el TrimStart page, "Este método no modifica el valor de la instancia actual. En cambio, devuelve una nueva cadena ...".

En .NET, las cadenas no cambian.

1

puede utilizar esta

, ligre, unicornio, snipe" .TrimStart (' ');

2

string.TrimStart (',') eliminará la coma, sin embargo, tendrá problemas con . una operación de división debido al espacio después de la coma mejor para unirse sólo en la sola coma o utilice

de división ("" .ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

Cuestiones relacionadas