Ответ 1
Вы можете сделать:
string str = "Hello Marco !";
str = str.Substring(0, str.Length - 2);
Мне нужно удалить два символа из конца строки.
Итак:
string = "Hello Marco !"
должен быть
Hello Marco
Как я могу это сделать?
Вы можете сделать:
string str = "Hello Marco !";
str = str.Substring(0, str.Length - 2);
s = s.Substring(0, Math.Max(0, s.Length-2))
чтобы включить случай, когда длина меньше 2
Что насчет
string s = "Hello Marco !";
s = s.Substring( 0, s.Length - 2);
Я обрезаю конец для нежелательных символов:
s = s.TrimEnd(' ', '!');
Чтобы он работал даже с большим количеством пробелов. Или лучше, если вы хотите, чтобы он работал всегда, поскольку текст ввода, кажется, исходит от пользователя:
Regex r = new Regex(@"(?'purged'(\w|\s)+\w)");
Match m = r.Match("Hello Marco !!");
if (m.Success)
{
string result = m.Groups["purged"].Value;
}
С этим вы более безопасны. Очистка, основанная на том, что последние два символа должны быть удалены, слишком слаба.
Проверяли ли вы документацию MSDN (или IntelliSense)? Как насчет метода String.Substring
?
Вы можете получить длину, используя свойство Length
, вычесть два из этого и вернуть подстроку от начала до двух символов из конец.
Например:
string str = "Hello Marco !";
str = str.Substring(0, str.Length - 2);
Если это неизвестное количество строк, вы можете обрезать последнего персонажа, выполнив s = s.TrimEnd('', '!'). Trim();
Рассматривали ли вы использование регулярного выражения? Если вы хотите разрешить буквенные числовые символы, вы можете использовать регулярное выражение для замены символов. Что делать, если вместо a! вы получаете%?
Попробуйте следующее:
var s = "Hello Marco !";
var corrected = s.Substring(0, s.Length - 2);
string s = "Hello Marco !";
s = s.Remove(s.length - 2, 2);