web-dev-qa-db-fra.com

Récupère les 5 derniers caractères d'une chaîne

Je veux obtenir les 5 derniers chiffres/caractères d'une chaîne. Par exemple, à partir de "I will be going to school in 2011!", j'aimerais obtenir "2011!".

Des idées? Je sais que Visual Basic a Right(string, 5); cela n'a pas fonctionné pour moi et m'a donné une erreur.

22
NULL
str.Substring(str.Length - 5)
53
dcp

Vérification d'erreur:

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

Vérifie les erreurs:

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

dans VB 2008 (VB 9.0) et versions ultérieures, préfixez Right () comme Microsoft.VisualBasic.Right (chaîne, nombre de caractères)

Dim str comme String = "Hello World"

Msgbox (Microsoft.VisualBasic.Right (str, 5))

'Monde"

Même chose pour Left () aussi.

3
Umesh Vora

La réponse acceptée de ce message provoquera une erreur dans le cas où la longueur de la chaîne est inférieure à 5. Donc j'ai une meilleure solution. Nous pouvons utiliser ce code simple:

If(str.Length <= 5, str, str.Substring(str.Length - 5))

Vous pouvez le tester avec une chaîne de longueur variable.

    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)

Une autre solution simple mais efficace que j'ai trouvée:

str.Substring (str.Length - Math.Min (5, str.Length))

2
Md. Suman Kabir

J'ai ouvert ce fil à la recherche d'une solution rapide à une question simple, mais j'ai trouvé que les réponses fournies n'étaient pas utiles ou trop compliquées. Le meilleur moyen d'obtenir les 5 derniers caractères d'une chaîne est en fait d'utiliser la méthode Right (). Voici un exemple simple:

Dim sMyString, sLast5 As String

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

Si vous obtenez une erreur, il y a probablement quelque chose qui ne va pas dans votre syntaxe. En outre, avec la méthode Right (), vous n'avez pas à vous soucier de dépasser ou de dépasser la longueur de la chaîne. Dans mon exemple, vous pouvez taper 10000 au lieu de 5 et il suffirait que toute la chaîne soit MsgBox, ou si sMyString était NULL ou "", la boîte de message ne ferait apparaître que rien.

1
technoman23
Dim a As String = Microsoft.VisualBasic.right("I will be going to school in 2011!", 5)
MsgBox("the value is:" & a)
0
dinesh