Я використовую WinForms c #. Я маю значення рядка, як показано нижче,
string Something = "1,5,12,34,";
Мені потрібно видалити останню кому в рядку. Тож як я можу його видалити?
Я використовую WinForms c #. Я маю значення рядка, як показано нижче,
string Something = "1,5,12,34,";
Мені потрібно видалити останню кому в рядку. Тож як я можу його видалити?
Відповіді:
Спробуйте string.TrimEnd()
:
Something = Something.TrimEnd(',');
Відповідь короля Кінга, звичайно, правильна. Також коментар Тіма Шмельтера також є гарною порадою у вашій справі.
Але якщо ви дійсно хочете видалити останню кому з рядка , вам слід знайти індекс останньої коми і видалити 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
метод не видаляє жодного символу з початкового рядка, він повертає новий рядок.
Метод 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 Array спочатку:
string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
Тепер у вас є кожен персонаж indexed
:
SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
Пограйте навколо
string
? Я припускаю, що через цикл, який об'єднує коми доint
s. Ви можете використовуватиstring.Join(",", ints)
замість цього. Це дозволяє уникнути перших коми.