Подтвердить что ты не робот

Удалить последнюю запятую в строке С# WinForms

Я использую WinForms С#. Я имею строковое значение, как показано ниже,

string Something = "1,5,12,34,";

Мне нужно удалить последнюю запятую в строке. Так как я могу удалить его?

4b9b3361

Ответ 1

Попробуйте string.TrimEnd():

Something = Something.TrimEnd(',');

Ответ 2

Ответ короля короля, конечно, прав. Также комментарий Тима Шмельтера также является хорошим предложением в вашем случае.

Но если вы хотите действительно удалить последнюю запятую в строке, вы должны найти индекс последней запятой и удалить как;

string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));

Выход будет:

1,5,12,3412345

Здесь demonstration.

Слишком маловероятно, что вы этого хотите, но я хочу указать на это. И помните, String.Remove метод не удаляет символ в исходной строке, он возвращает новую строку.

Ответ 3

Попробуйте string.Remove();

string str = "1,5,12,34,";
string removecomma = str.Remove(str.Length-1);
MessageBox.Show(removecomma);

Ответ 4

Или вы можете преобразовать его в Char Массив сначала:

string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];

Теперь у вас есть каждый символ indexed:

SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','

Играйте вокруг него

Ответ 5

Метод 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;
}