2010-05-11 8 views
18

Я хочу получить последние 5 цифр/символов из строки. Например, от "I will be going to school in 2011!", я хотел бы получить "2011!".Получить последние 5 символов в строке

Любые идеи? Я знаю, Visual Basic имеет Right(string, 5); это не сработало для меня и дало мне ошибку.

+1

Какая ошибка? Может быть, и пост-фрагмент кода тоже ... – NealB

+0

Я думаю, что функция Right() больше не используется в visual studio 2008. – NULL

+0

В .NET 4.0 (с Visual Studio 2012) 'Right (myString, 5)' работает, и я успешно его использую. – Danwize

ответ

47
str.Substring(str.Length - 5) 
+0

замечательный, работает как шарм! – NULL

+13

просто убедитесь, что 'str.Length - 5' выше не приводит к отрицательному значению. – Jaans

5

Проверка на наличие ошибок: проверка

Dim result As String = str 
If str.Length > 5 Then 
    result = str.Substring(str.Length - 5) 
End If 
3

в VB 2008 (VB 9.0) и более поздних версий, префикс Right() в качестве Microsoft.VisualBasic.Right (строки, числа символов)

Dim ул, как String = "Hello World"

MsgBox (Microsoft.VisualBasic.Right (ул, 5))

«Мир»

То же самое касается и левых() тоже.

0

Я открыл эту тему, ища быстрое решение простого вопроса, но я обнаружил, что ответы здесь либо не были полезными, либо слишком сложными. Лучший способ получить последние 5 символов строки - это, по сути, использовать метод Right(). Вот простой пример:

Dim sMyString, sLast5 As String 

sMyString = "I will be going to school in 2011!" 
sLast5 = Right(sMyString, - 5) 
MsgBox("sLast5 = " & sLast5) 

Если вы получаете сообщение об ошибке, возможно, что-то не так с вашим синтаксисом. Кроме того, с помощью метода Right() вам не нужно беспокоиться о переходе или по длине строки. В моем примере вы можете ввести 10000 вместо 5, и это всего лишь MsgBox целая строка, или если sMyString был NULL или "", окно сообщения просто не появлялось ни с чем.

1

Принятый ответ на этот пост вызовет ошибку в случае, когда длина строки меньше 5. Поэтому у меня есть лучшее решение. Мы можем использовать этот простой код:

Вы можете проверить его на строку переменной длины.

Dim str, result As String 
    str = "11!" 
    result = If(str.Length <= 5, str, str.Substring(str.Length - 5)) 
    MessageBox.Show(result) 
    str = "I will be going to school in 2011!" 
    result = If(str.Length <= 5, str, str.Substring(str.Length - 5)) 
    MessageBox.Show(result) 

Еще один простой, но эффективное решение я нашел:

str.Substring (str.length - Math.min (5, str.length))

0

Dim A As String = Microsoft .VisualBasic.right («Я буду ходить в школу в 2011 году!», 5) MsgBox («значение:» & a)

Смежные вопросы