я использую WinForms C# .I имеют строковое значение, как показано ниже,Удалить последнюю запятую в строку C# WinForms
string Something = "1,5,12,34,";
Мне нужно удалить последнюю запятую в строке. Итак, как я могу удалить его?
я использую WinForms C# .I имеют строковое значение, как показано ниже,Удалить последнюю запятую в строку C# WinForms
string Something = "1,5,12,34,";
Мне нужно удалить последнюю запятую в строке. Итак, как я могу удалить его?
Попробуйте string.TrimEnd()
:
Something = Something.TrimEnd(',');
Это лучшее решение, потому что оно работает для всех строк, включая ситуации, когда вы не знаете заранее, если строка действительно заканчивается запятой или нет. –
Попробуйте string.Remove();
string str = "1,5,12,34,";
string removecomma = str.Remove(str.Length-1);
MessageBox.Show(removecomma);
King King's answer, конечно, права. Также Tim Schmelter's comment также является хорошим предложением в вашем случае.
Но если вы хотите действительноудалить последнюю запятую в строке, вы должны найти индекс последней запятой и удалить подобное;
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 Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
Теперь у вас есть каждый символ indexed
:
SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
Играть вокруг него
Метод TrimEnd принимает символы, не строки. см: http://www.dotnetperls.com/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;
}
Почему у вас такой 'string'? Я предполагаю из-за цикла, который конкатенирует запятые с 'int'. Вместо этого вы можете использовать 'string.Join (", ", ints)'. Это позволяет избежать пропусков запятых в первую очередь. –