Pergunta

Eu tenho uma string que é como abaixo.

,liger, unicorn, snipe

em outras linguagens que conheço, posso apenas fazer string.trim(",") mas como posso fazer isso em c#?

Obrigado.


Tem havido muitas idas e vindas sobre a função StartTrim.Como vários apontaram, o StartTrim não afeta a variável primária.No entanto, dada a construção dos dados versus a pergunta, não sei qual resposta aceitar.É verdade que a questão deseja apenas que o primeiro caractere seja cortado e não o último (se houver), no entanto, nunca haveria um "," no final dos dados.Então, dito isso, vou aceitar a primeira resposta que dizia usar StartTrim atribuído a uma nova variável.

Foi útil?

Solução

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

Ou talvez:

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

Outras dicas

string s = ",liger, unicorn, snipe";
s.TrimStart(',');

Strings .net podem fazer Trim() e TrimStart().Porque é preciso params, você pode escrever:

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

e se você tiver mais de um caractere para cortar, você pode escrever:

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

aqui está uma maneira fácil de não produzir a vírgula inicial:

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

string.TrimStart(',') removerá a vírgula, mas você terá problemas com uma operação de divisão devido ao espaço após a vírgula.Melhor juntar apenas uma vírgula ou usar

Split(", ".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);

",ligre, unicórnio, narceja".Trim(',') -> "ligre, unicórnio, narceja"

Tente string.Trim(',') e veja se isso faz o que você deseja.

Note o original string for deixada intacta, Trim retornará uma nova string:

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

impressões:

s1 = ,abc,d
s2 = abc,d
string s = ",liger, unicorn, snipe";
s = s.TrimStart(',');

É importante atribuir o resultado do TrimStart a uma variável.Como diz no Página TrimStart, "Este método não modifica o valor da instância atual.Em vez disso, ele retorna uma nova string...".

No .NET, as strings não mudam.

você pode usar isso

,ligre, unicórnio, narceja".TrimStart(',');

if (s.StartsWith(",")) {
    s = s.Substring(1, s.Length - 1);
}
string t = ",liger, unicorn, snipe".TrimStart(new char[] {','});

Da mesma forma que em qualquer outro lugar: string.trim

    string s = ",liger, tiger";

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

Você quis dizer cortar todas as instâncias de "," nessa string?

Nesse caso, você pode fazer:

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

Basta usar Substring para ignorar o primeiro caractere (ou atribuí-lo a outra string);

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

Ver: http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx

        string animals = ",liger, unicorn, snipe";

        //trimmed will contain "liger, unicorn, snipe"
        string trimmed = word.Trim(',');
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top