2010-09-14 3 views
1

Как удалить только первое запятую + пространство снизу, если оно там ничего не делает.Вопрос о манипуляции строкой для .NET.

string comments = ", 38, "; 
+0

Будет, 'всегда появляются в голове строки? Вы увидите строки ** без ** ','? Что вы хотите сделать, если увидите что-то вроде '38, 39'? –

+0

Кажется, вы не понимаете мой вопрос. «запятая + пространство снизу, если ее там» => если ее там «else» => ничего не делать. – Sreedhar

+0

кажется, что вы не понимаете ** моих ** вопросов, иначе вы бы на них ответили. –

ответ

5
if(comments.StartsWith(", ") && comments.Length > 2) { 
    comments = comments.Substring(2); 
} 
+1

Это не удастся, если строка только «,», так как позиция 3 не существует. –

+0

И также даст неправильный результат, если строка начинается с запятой или пробелом. «, 38», превратится в «8». –

+0

@Paw Я так не думаю, так как «, 38,« не начинается с »,« –

3

Лучше всего было бы использовать метод String.TrimStart(...).

string comments = ", 38, "; 
string commentsOK = "38, "; 

string trimmedComments = comments.TrimStart(',', ' '); 
string trimmedCommentsOK = commentsOK.TrimStart(',', ' '); 

После этого как trimmedComments и trimmedCommentsOK будет иметь значение "38, ".

String.TrimStart эталонный метод: http://msdn.microsoft.com/en-us/library/system.string.trimstart.aspx

+0

Сегодня я узнал что-то новое. – recursive

+0

Не так ли удалил бы «,» из «, 38»,? Метод TrimStart предназначен для удаления всех основных символов, указанных в аргументах, независимо от их порядка. Исходя из вопроса, я думаю, что вы неправильно применяете TrimStart. –

+0

Ну, как правило, вы хотите удалить запятые и пробелы перед данными, а не только строку «,». Проблема с вопросом заключается в том, что желаемый результат не указан. –