2008-09-16 4 views
10

У меня есть строка, как показано ниже.Как я могу обрезать ведущую запятую в моей строке

,liger, unicorn, snipe 

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

Спасибо.


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

+0

Предложите добавить тэг ".net", так как это не зависит от языка. – 2008-09-16 15:35:39

+0

85 просмотров 10 ответов и НИКТО НЕ думает, что этот вопрос стоит +1? – Keng 2008-09-16 15:39:13

+0

@Keng, может быть, потому, что этот вид вещей тривиален для людей C# – chakrit 2008-09-16 15:40:52

ответ

11
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 
0
if (s.StartsWith(",")) { 
    s = s.Substring(1, s.Length - 1); 
} 
21
string s = ",liger, unicorn, snipe"; 
s.TrimStart(','); 
+0

Использует ли этот метод _modifies_ строку? Не следует переустанавливать обратно в s ala s = s.TrimStrat ('/'); ? – chakrit 2008-09-16 15:38:43

+0

не уверен, но его не-секвентор на вопрос. – DevelopingChris 2008-09-16 15:39:45

+0

Нет, строки неизменяемы. Все функции манипуляции возвращают новую строку с внесенными изменениями. – 2015-08-03 13:31:50

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

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

вы имели в виду обрезать все экземпляры "" в этой строке?

В этом случае, вы можете сделать:

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

"LIGER, единорог, бекас" .trim ('') -> "лигр, Уникор, бекас"

1

Try строку. Trim (',') и посмотрите, делает ли это то, что вы хотите.

0

Просто используйте Подстроку, чтобы игнорировать первый символ (или назначить его другой строке);

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

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

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

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

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

Отметим, что оригинальная строка остается нетронутым, уравновешивание вернет вам новую строку:

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 
3

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

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

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

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

1

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

, LIGER, единорог, бекас».TrimStart (' ');

2

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

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