Мне нужно удалить два символа из конца строки.
Итак:
string = "Hello Marco !"
должен быть
Hello Marco
Как я могу это сделать?
Мне нужно удалить два символа из конца строки.
Итак:
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);