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



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



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


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

960   6  

6 ответов:

попробовать string.TrimEnd():

Something = Something.TrimEnd(',');

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

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

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

выход будет;

1,5,12,3412345

здесь a 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;
}

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

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

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

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

играть вокруг него

Dim psValue As String = "1,5,12,34,123,12"
psValue = psValue.Substring(0, psValue.LastIndexOf(","))

выход:

1,5,12,34,123

Comments

    Ничего не найдено.