Удалить последнюю запятую в строке С# WinForms Я использую WinForms С#. Я имею строковое значение, как показано ниже, string Something = "1,5,12,34,"; Мне нужно удалить последнюю запятую в строке. Так как я могу удалить его? Ответ 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; }
Ответ 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; }