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.
str.Substring(str.Length - 5)
Vérification d'erreur:
result = str.Substring(Math.Max(0, str.Length - 5))
Vérifie les erreurs:
Dim result As String = str
If str.Length > 5 Then
result = str.Substring(str.Length - 5)
End If
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.
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))
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.
Dim a As String = Microsoft.VisualBasic.right("I will be going to school in 2011!", 5)
MsgBox("the value is:" & a)