2011-01-13 3 views
6

Я пытаюсь удалить последний символ строки. Этот последний символ - это новая строка (System.Environment.NewLine).Удалить последний символ строки (VB.NET 2008)

Я пробовал некоторые вещи, но я не могу его удалить.

Пример:

myString.Remove(sFP.Length - 1) 

Пример 2:

myString= Replace(myString, Environment.NewLine, "", myString.Length - 1) 

Как я могу это сделать?

ответ

16

Если ваша новая строка CR LF, это на самом деле два последовательных символа. Попробуйте позвонить Remove с Length - 2.

Если вы хотите удалить все «\ п» и «\ R» символов в конце строки, попробуйте вызвать TrimEnd, передавая символы:

str.TrimEnd(vbCr, vbLf) 

Чтобы удалить все пробельные символы (новые строки, вкладки, пробелы, ...) просто звоните TrimEnd, ничего не пропуская.

+0

Как и в C#, VB строки являются неизменными. –

+0

@ Konrad Конечно! Теперь, когда я думаю об этом, на самом деле важно указать в этом вопросе, поскольку это может быть особенно запутанным. Чтобы уточнить, я хотел бы предоставить выражение *, а не * оператор *. Он не будет изменять переменную 'str'. Возвращаемое значение является отдельной строкой. Вы должны использовать что-то вроде 'str = str.TrimEnd()', если вы хотите, чтобы переменная изменилась. –

+1

ОК. Спасибо. Решенный после вашего примера: myString = myString.Remove (mystring.Length - 2) – aco

3
Dim str As String = "Test" & vbCrLf 
str = str.Substring(0, str.Length - vbCrLf.Length) 

то же самое с Environment.NewLine вместо vbCrlf:

str = "Test" & Environment.NewLine 
str = str.Substring(0, str.Length - Environment.NewLine.Length) 

Btw, разница: Environment.NewLine от платформы (к возвращает другой строки в другой ОС)

Ваш remove-Approach не работал, потому что вы не присвоили возвращаемое значение этой функции исходной строковой ссылке:

str = str.Remove(str.Length - Environment.NewLine.Length) 

или если вы хотите заменить все Newlines:

str = str.Replace(Environment.NewLine, String.Empty) 
-1

Использование:

Dim str As String 
str = "cars,cars,cars" 
str = str.Remove(str.LastIndexOf(",")) 
Смежные вопросы