2010-05-11 180 views
18

我想從字符串中獲取最後5個數字/字符。例如,從"I will be going to school in 2011!",我想獲得"2011!"獲取字符串中的最後5個字符

任何想法?我知道Visual Basic有Right(string, 5);這不適合我,並給了我一個錯誤。

+1

什麼是錯誤?也許發佈一個代碼片段... – NealB 2010-05-11 18:48:43

+0

我覺得Right()函數不再用在visual studio 2008中了。 – NULL 2010-05-11 18:52:02

+0

在.NET 4.0中(使用Visual Studio 2012)'Right(myString,5)'確實有效,我正在成功使用它。 – Danwize 2014-08-22 22:38:32

回答

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

美妙,作品像一個魅力! – NULL 2010-05-11 18:51:36

+13

只需確保上面的'str.Length - 5'不會導致負值。 – Jaans 2011-10-12 11:32:05

5

檢查錯誤:

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

錯誤檢查:

result = str.Substring(Math.Max(0, str.Length - 5)) 
3

在2008年VB(VB 9.0)以後,前綴右()爲Microsoft.VisualBasic.Right(字符串,數字符)

昏暗str作爲字符串= 「Hello World」 的

MSGBOX(Microsoft.VisualBasic.Right(STR,5 ))

'World'

同樣適用於Left()。

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.所以我有一個更好的解決方案。我們可以使用這個簡單的代碼:

If(str.Length <= 5, str, str.Substring(str.Length - 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

暗淡了作爲字符串=微軟.VisualBasic.right(「我將在2011年上學!」,5) MsgBox(「值是:」& a)

相關問題