Come posso tagliare la virgola iniziale nella mia stringa
Domanda
Ho una stringa che è come sotto.
,liger, unicorn, snipe
in altre lingue con cui ho familiarità posso semplicemente fare un string.trim(",") ma come posso farlo in C#?
Grazie.
Ci sono state molte discussioni avanti e indietro sulla funzione StartTrim.Come molti hanno sottolineato, StartTrim non influisce sulla variabile primaria.Tuttavia, data la costruzione dei dati rispetto alla domanda, sono indeciso su quale risposta accettare.È vero che la domanda vuole solo che il primo carattere venga tagliato e non l'ultimo (se presente), tuttavia non ci sarebbe mai un "," alla fine dei dati.Quindi, detto questo, accetterò la prima risposta che diceva di utilizzare StartTrim assegnato a una nuova variabile.
Soluzione
string sample = ",liger, unicorn, snipe";
sample = sample.TrimStart(','); // to remove just the first comma
O forse:
sample = sample.Trim().TrimStart(','); // to remove any whitespace and then the first comma
Altri suggerimenti
string s = ",liger, unicorn, snipe";
s.TrimStart(',');
Le stringhe .net possono eseguire Trim() e TrimStart().Perché ci vuole params
, tu puoi scrivere:
",liger, unicorn, snipe".TrimStart(',')
e se hai più di un carattere da tagliare, puoi scrivere:
",liger, unicorn, snipe".TrimStart(",; ".ToCharArray())
ecco un modo semplice per non produrre la virgola iniziale con cui iniziare:
string[] animals = { "liger", "unicorn", "snipe" };
string joined = string.Join(", ", animals);
string.TrimStart(',') rimuoverà la virgola, tuttavia avrai problemi con un'operazione di divisione a causa dello spazio dopo la virgola.È meglio unirsi solo sulla singola virgola o utilizzare
Split(", ".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
",ligre, unicorno, beccaccino".Trim(',') -> "ligre, unicor, beccaccino"
Prova string.Trim(',') e vedi se fa quello che vuoi.
Notare la originale la stringa viene lasciata intatta, Trim ti restituirà una nuova stringa:
string s1 = ",abc,d";
string s2 = s1.TrimStart(",".ToCharArray());
Console.WriteLine("s1 = {0}", s1);
Console.WriteLine("s2 = {0}", s2);
stampe:
s1 = ,abc,d
s2 = abc,d
string s = ",liger, unicorn, snipe";
s = s.TrimStart(',');
È importante assegnare il risultato di TrimStart a una variabile.Come dice il Pagina TrimStart, "Questo metodo non modifica il valore dell'istanza corrente.Invece, restituisce una nuova stringa...".
In .NET le stringhe non cambiano.
puoi usare questo
,ligre, unicorno, beccaccino".TrimStart(',');
if (s.StartsWith(",")) {
s = s.Substring(1, s.Length - 1);
}
string t = ",liger, unicorn, snipe".TrimStart(new char[] {','});
Come ovunque: stringa.trim
string s = ",liger, tiger";
if (s.Substring(0, 1) == ",")
s = s.Substring(1);
Intendevi tagliare tutte le occorrenze di "," in quella stringa?
In tal caso, puoi fare:
s = s.Replace(",", "");
Basta usare Sottostringa per ignorare il primo carattere (o assegnarlo a un'altra stringa);
string o = ",liger, unicorn, snipe";
string s = o.Substring(1);
Vedere: http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx
string animals = ",liger, unicorn, snipe";
//trimmed will contain "liger, unicorn, snipe"
string trimmed = word.Trim(',');