Я хочу удалить последние три символа из строки:
string myString = "abcdxxx";
Обратите внимание, что строка - это динамические данные.
Я хочу удалить последние три символа из строки:
string myString = "abcdxxx";
Обратите внимание, что строка - это динамические данные.
Ответы:
прочитать последние 3 символа из строки [Первоначально заданный вопрос]
Вы можете использовать string.Substring и дать ему начальный индекс, и он получит подстроку, начиная с данного индекса до конца.
myString.Substring(myString.Length-3)
Получает подстроку из этого экземпляра. Подстрока начинается с указанной позиции символа. MSDN
Изменить , для обновленного сообщения
Удалить последние 3 символа из строки [Обновленный вопрос]
Чтобы удалить последние три символа из строки, вы можете использовать string.Substring (Int32, Int32) и дать ей начальный индекс 0и конечный индекс на три меньше длины строки . Он получит подстроку перед последними тремя символами.
myString = myString.Substring(0, myString.Length-3);
String.Substring Метод (Int32, Int32)
Получает подстроку из этого экземпляра. Подстрока начинается с указанной позиции символа и имеет указанную длину.
Вы также можете использовать метод String.Remove (Int32) для удаления последних трех символов, передав начальный индекс как длину - 3 , он будет удалять от этой точки до конца строки.
myString = myString.Remove(myString.Length-3)
Возвращает новую строку, в которой все символы в текущем экземпляре, начиная с указанной позиции и продолжаясь до последней позиции, были удалены.
Я прочитал все это, но захотелось чего-то более элегантного. Просто чтобы удалить определенное количество символов из конца строки:
string.Concat("hello".Reverse().Skip(3).Reverse());
вывод:
"he"
Enumerable.Reverseстрока буферизуется в a char[], затем буферизуется в новую, char[]которая на 3 короче, а затем генерируется новая string(с внутренней другой char[]). Лучшим подходом было бы new string("hello".Reverse().Skip(3))или просто написать свою собственную функцию расширения строки, AllBut(this string in, int i)которая использует Substring.
Lengthхранит их.
.SkipLast(n). Не нужно ничего менять. "hello".SkipLast(3)дает"he"
myString.Remove(myString.Length-3);
myString = myString.Remove(myString.Length - 3)то есть.
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd
Вы можете использовать String.Removeдля удаления с указанной позиции до конца строки.
myString = myString.Remove(myString.Length - 3);
Вероятно, это не совсем то, что вы ищете, поскольку вы говорите, что это «динамические данные», но с учетом строки из вашего примера это также работает:
? "abcdxxx".TrimEnd('x');
"abc"
myString.Substring(myString.Length - 3, 3)
Вот примеры подстроки. >>
http://www.dotnetperls.com/substring
Обратитесь тех.
Удалить последние символы из строки
TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)
.Text.Remove(10)// используется для удаления текста от индекса 10 до конца
Легко. text = text.remove(text.length - 3), Я вычел 3, потому что Removeфункция удаляет все элементы из этого индекса до конца строки, которая есть text.length. Итак, если я вычитаю 3, я получаю строку с удаленными из нее 3 символами.
Вы можете обобщить это на удаление aсимволов из конца строки, например:
text = text.remove(text.length - a)
Так что я поступил по той же логике. removeФункция удаляет все элементы из его внутренней части до конца строки , которая является длиной текста. Итак, если я вычту aиз длины строки, я получу строку сa удаленными символами.
Таким образом, это работает не только для 3, но и для всех положительных целых чисел, кроме случаев, когда длина строки меньше или равна a, в этом случае она вернет отрицательное число или 0.