la comparaison de chaînes en vb
Espérons que cela devrait être une question facile. En java, je pense que c'est compareTo()
.
Comment puis-je comparer les 2 variables de chaîne de caractères afin de déterminer si elles sont les mêmes?
ie:
If (string1 = string2 And string3 = string4) Then
'perform operation
Else
'perform another operation
End If
Ce "classique" de vb ou vb.net?
l'un dans visual web developer 2008. vb.net je suppose
l'un dans visual web developer 2008. vb.net je suppose
OriginalL'auteur | 2009-05-23
Vous devez vous connecter pour publier un commentaire.
Je vous recommande d'utiliser le Chaîne de caractères.Comparer méthode. En utilisant cette méthode, vous pouvez également contrôler si les de faire effectuer la casse des comparaisons ou pas.
Exemple:
Edit: si vous souhaitez effectuer une casse de recherche, vous pouvez utiliser le StringComparison paramètre:
Compare
, qui encombre code avec= 0
. Et nécessite lecteur à penser un peu plus à propos de l'intention du code.Equals
fait l'intention évidente. Seul le temps je voudrais utiliserCompare
est lorsque les valeurs autres que0
sont nécessaires (tri).Il est intéressant de noter que
String.Compare(str1, str2)
jette àFalse
quand ils sont égaux, etTrue
quand ils ne sont pas égaux.vous me dites! Je n'ai pas lu cette réponse assez et fait des tonnes de = 1 pensée = 1 moulages de Vrai...je vais prendre ToolmakerSteve conseils de désencombrement par l'aide d'égal à Égal. Je ne vois pas cela comme une "intéressant" comme vous l'avez dit, je le prends comme extrêmement déroutant et non intuitive si vous avez déjà codé avant, où 0 = false et 1 = vrai dans presque tous les cas.
Il n'y a rien d'intéressant ou de confusion à ce sujet.
String.Compare(str1, str2)
ne renvoie pas unBoolean
.0
ne signifie pasFalse
, et1
ne signifie pasTrue
.String.Compare
retourne unInteger
: moins que zéro sistr1
vient avantstr2
par ordre alphabétique, supérieur à zéro sistr2
précèdestr1
par ordre alphabétique, et zéro si les chaînes sont identiques. La valeur retournée deString.Compare
ne doit jamais être jeté d'unBoolean
. si vous voulez unBoolean
, utilisezString.Equals
qui renvoie uneBoolean
.OriginalL'auteur Fredrik Mörk
qui retourne une valeur booléenne Vrai. Cette comparaison est sensible à la casse.
Donc dans votre exemple,
Je l'ai eu à partir d'ici: msdn.microsoft.com/en-us/library/fbh501kz(SV.80).aspx
Pour info, Il fonctionne très bien - je l'utilise tout le temps. Bien que dans vb.net et plus récentes, on peut normalement utiliser "AndAlso" plutôt que "Et", pour ne faire que la deuxième comparaison, si nécessaire ("court-circuit d'évaluation").
Quel est le principal avantage de l'utilisation de
String.Equals
, au lieu de=
? Je sais que vous ne pouvez utiliser la première pour un rappel, mais je me demande si il n'y a plus?OriginalL'auteur Robert Harvey
Dans vb.net vous pouvez comparer des chaînes de caractères avec
=
. Même siString
est un type de référence, en vb.net=
surString
a été redéfini pour faire une comparaison sensible à la casse de contenu des deux chaînes.Vous pouvez tester avec le code suivant. Notez que j'ai pris l'une des valeurs à partir de la saisie de l'utilisateur de s'assurer que le compilateur ne peut pas utiliser la même référence pour les deux variables comme le compilateur Java serait si les variables ont été définies à partir de la même chaîne de caractères Littérale. Exécutez le programme, de type "Ce" et appuyez sur <Enter>.
OriginalL'auteur Tim
Je sais que cela a été répondu, mais dans VB.net au-dessus de 2013 (le plus bas que j'ai personnellement utilisé) il vous suffit de comparer des chaînes de caractères avec un
=
de l'opérateur. C'est le moyen le plus facile.Donc en gros:
OriginalL'auteur illuminati_confirmed
Je pense que cette Chaîne.Égale est ce que vous avez besoin.
une retournera false.
OriginalL'auteur Aman
OriginalL'auteur Sreenath Munireddy