Помогите мне удалить последние три символа любой строки, пожалуйста! - PullRequest
1 голос
/ 23 октября 2009

Тестовая строка:

the%20matrix%20

Как я могу удалить последние три символа? Использование этого кода дает мне исключение из индекса:

y = y.Substring(y.Length - 4, y.Length - 1);

Ответы [ 7 ]

16 голосов
/ 23 октября 2009

Кажется, это не ваша РЕАЛЬНАЯ проблема; если вы хотите удалить этот «% 20», вы должны использовать:

string test = "the%20matrix%20";
string clean = HttpUtility.UrlDecode(test);

if (clean.Length > 2) // if you still want to strip last chars...
    clean = clean.Substring(0, clean.Length - 3);
4 голосов
/ 23 октября 2009

Как сказал Даловега, вам нужно, чтобы первый параметр Подстроки был равен 0, а второй Длина - 3. В качестве альтернативы:

if(y.Length >= 3)
{
    y = y.Remove(y.Length - 3)
}
3 голосов
/ 23 октября 2009

Вы хотите

y.Substring(0, y.Length-4)
2 голосов
/ 23 октября 2009

Если вы хотите удалить последние три символа, вам нужно, чтобы первый параметр метода Substring был равен нулю.

1 голос
/ 23 октября 2009

Сначала нужно убедиться, что длина строки не менее 3 символов.

if (y.Length > 2)
{
}

Как уже говорили другие версии Подстрока , вам нужны параметры startIndex и length.

Хотя, что вы хотите сделать с 1 или 2 символьными строками?

0 голосов
/ 17 сентября 2015

Я нашел этот пост в результате поиска, который искал. У меня был разделитель, который я строил с помощью строителя строк, и concat, и я хотел удалить последний разделитель.

var delim = "{somedelimiter}";
var sb = new StringBuilder();
//concat the values into one string
foreach (var val in values)
{
    sb.Append(val);
    sb.Append(delim);
}
var finalValue = sb.ToString();
finalValue = finalValue.Remove(finalValue.Length - delim.Length);
0 голосов
/ 14 февраля 2013

string.Remove (string.LastIndexOf ("stringTo"));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...