Зачем тебе такой string? Я предполагаю из-за цикла, который объединяет запятые с ints. string.Join(",", ints)Вместо этого можно использовать . Это в первую очередь позволяет избежать запятых в конце.
Это лучшее решение, потому что оно работает для всех строк, включая ситуации, когда вы не знаете заранее, действительно ли строка заканчивается запятой или нет.
East of Nowhere
6
Вот почему я все еще ищу решения даже для вещей, которые мог бы легко написать сам. Обычно это решает кто-то другой. :)
dpberry178
1
Так что одинарные кавычки не были ошибкой. Сегодня я узнал, что символы char и string определяются с помощью одинарных и двойных кавычек соответственно.
Слишком маловероятно, что вы захотите этого, но я хочу указать на это. И помните, String.Removeметод не удаляет символы в исходной строке, он возвращает новую строку.
Метод TrimEnd принимает массив входных символов, а не строку. Приведенный ниже код из Dot Net Perls показывает более эффективный пример того, как выполнять те же функции, что и TrimEnd.
staticstringTrimTrailingChars(stringvalue)
{
int removeLength = 0;
for (int i = value.Length - 1; i >= 0; i--)
{
charlet = value[i];
if (let == '?' || let == '!' || let == '.')
{
removeLength++;
}
else
{
break;
}
}
if (removeLength > 0)
{
returnvalue.Substring(0, value.Length - removeLength);
}
returnvalue;
}
string
? Я предполагаю из-за цикла, который объединяет запятые сint
s.string.Join(",", ints)
Вместо этого можно использовать . Это в первую очередь позволяет избежать запятых в конце.Ответы:
Попробуйте
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
метод не удаляет символы в исходной строке, он возвращает новую строку.источник
Пытаться
string.Remove();
string str = "1,5,12,34,"; string removecomma = str.Remove(str.Length-1); MessageBox.Show(removecomma);
источник
Метод 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] -> ','
Поиграйте с этим
источник
Попробуйте ниже
Что-то..TrimEnd (",". ToCharArray ());
источник
Dim psValue As String = "1,5,12,34,123,12" psValue = psValue.Substring(0, psValue.LastIndexOf(","))
выход:
1,5,12,34,123
источник