Я использую WinForms c #. У меня строковое значение, как показано ниже,
string Something = "1,5,12,34,";
Мне нужно удалить последнюю запятую в строке. Итак, как я могу его удалить?
Я использую WinForms c #. У меня строковое значение, как показано ниже,
string Something = "1,5,12,34,";
Мне нужно удалить последнюю запятую в строке. Итак, как я могу его удалить?
Ответы:
Попробуйте string.TrimEnd()
:
Something = Something.TrimEnd(',');
Ответ Короля Кинга, конечно же, правильный. Также комментарий Тима Шмелтера также является хорошим предложением в вашем случае.
Но если вы действительно хотите удалить последнюю запятую в строке , вы должны найти индекс последней запятой и удалить подобное;
string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));
Выход будет;
1,5,12,3412345
Здесь а demonstration
.
Слишком маловероятно, что вы захотите этого, но я хочу указать на это. И помните, String.Remove
метод не удаляет символы в исходной строке, он возвращает новую строку.
Метод TrimEnd принимает массив входных символов, а не строку. Приведенный ниже код из Dot Net Perls показывает более эффективный пример того, как выполнять те же функции, что и TrimEnd.
static string TrimTrailingChars(string value)
{
int removeLength = 0;
for (int i = value.Length - 1; i >= 0; i--)
{
char let = value[i];
if (let == '?' || let == '!' || let == '.')
{
removeLength++;
}
else
{
break;
}
}
if (removeLength > 0)
{
return value.Substring(0, value.Length - removeLength);
}
return value;
}
Или вы можете сначала преобразовать его в массив Char:
string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
Теперь у вас есть каждый персонаж indexed
:
SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
Поиграйте с этим
string
? Я предполагаю из-за цикла, который объединяет запятые сint
s.string.Join(",", ints)
Вместо этого можно использовать . Это в первую очередь позволяет избежать запятых в конце.