Как я могу обрезать запятую в моей строке - PullRequest
10 голосов
/ 16 сентября 2008

У меня есть строка, подобная приведенной ниже.

,liger, unicorn, snipe

на других языках, с которыми я знаком, я могу просто сделать string.trim (","), но как мне это сделать в c #?

Спасибо.


Много было сказано о функции StartTrim. Как уже отмечалось, StartTrim не влияет на основную переменную. Тем не менее, учитывая структуру данных против вопроса, я разрываюсь относительно того, какой ответ принять. Правда, вопрос только в том, чтобы первый символ был обрезан, а не последний (если он есть), однако в конце данных никогда не будет ",". Итак, с учетом сказанного я собираюсь принять первый ответ, в котором говорится, что используется StartTrim, назначенный новой переменной.

Ответы [ 17 ]

21 голосов
/ 16 сентября 2008
string s = ",liger, unicorn, snipe";
s.TrimStart(',');
12 голосов
/ 16 сентября 2008
string sample = ",liger, unicorn, snipe";
sample = sample.TrimStart(','); // to remove just the first comma

Или, возможно:

sample = sample.Trim().TrimStart(','); // to remove any whitespace and then the first comma
4 голосов
/ 16 сентября 2008

.net строки могут выполнять Trim () и TrimStart (). Поскольку это занимает params, вы можете написать:

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

и если у вас есть несколько символов для обрезки, вы можете написать:

",liger, unicorn, snipe".TrimStart(",; ".ToCharArray())
3 голосов
/ 16 сентября 2008

вот простой способ не вводить запятую для начала:

string[] animals = { "liger", "unicorn", "snipe" };
string joined = string.Join(", ", animals);
2 голосов
/ 17 сентября 2008

string.TrimStart (',') удалит запятую, однако у вас возникнут проблемы с операцией разбиения из-за пробела после запятой. Лучше всего присоединиться только через одну запятую или использовать

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

1 голос
/ 17 сентября 2008
string s = ",liger, unicorn, snipe";
s = s.TrimStart(',');

Важно присвоить результат TrimStart переменной. Как сказано на странице TrimStart : «Этот метод не изменяет значение текущего экземпляра. Вместо этого он возвращает новую строку ...».

В .NET строки не меняются.

1 голос
/ 16 сентября 2008

Обратите внимание, строка оригинал остается без изменений, Trim вернет вам новую строку:

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

печать:

s1 = ,abc,d
s2 = abc,d
1 голос
/ 16 сентября 2008

Попробуйте string.Trim (',') и посмотрите, будет ли это то, что вы хотите.

1 голос
/ 16 сентября 2008

", liger, unicorn, snipe" .Trim (',') -> "liger, unicor, snipe"

1 голос
/ 17 сентября 2008

Вы можете использовать это

, liger, единорог, бекас "

...