En face de Java .méthode equals ()?
Je suis en train d'écrire un petit bloc de code en Java avec une boucle while qui demande le nom de l'utilisateur. Si ce n'est pas le nom le code est à la recherche pour, de là, tout se répète. Par exemple,
Scanner scan = new Scanner();
do {
System.out.println("whats your name?");
String name = scan.nextLine();
} while ("jack".equals(name)); //////<<<<
C'est là que j'ai marqué avec <<<<
que je ne sais pas quoi faire. J'ai besoin de quelque chose comme !=
, mais qui ne fonctionne pas avec des chaînes.
Si ce que je peux le mettre ici?
Vous pouvez utiliser le négatif de l'opérateur booléen:
c'est une réponse.
Je ne crois pas que de simples réponses comme ça méritent rep, et j'ai une (mauvaise?) l'habitude de poster dans un commentaire plutôt qu'une communauté wiki réponse.
Je suppose que vous avez raison. J'ai toujours soupçonner que les questions qui obtenir des réponses sur 4 à 5 minutes seulement de dire que l'affiche originale n'a pas lu les tutoriels.
while (!jack.equals(name))
.!my_string.equals(other_string)
c'est une réponse.
Je ne crois pas que de simples réponses comme ça méritent rep, et j'ai une (mauvaise?) l'habitude de poster dans un commentaire plutôt qu'une communauté wiki réponse.
Je suppose que vous avez raison. J'ai toujours soupçonner que les questions qui obtenir des réponses sur 4 à 5 minutes seulement de dire que l'affiche originale n'a pas lu les tutoriels.
OriginalL'auteur user2465514 | 2013-06-08
Vous devez vous connecter pour publier un commentaire.
Le point d'exclamation
!
représente une négation ou d'un compliment.while(!"jack".equals(name)){ }
"jack"
semble être unString
, pas un nom de variable...Mon erreur. Édité pour plus de précision.
semble être une variable d'un original, d'une mauvaise mise en forme de la question.
Je parlais de celui d'origine, en fait. Il a été
"jack
ensuite (donc le semble). Maintenant, c'est clairement unString
.OriginalL'auteur Mike Nitchie
Le booléen pas ! l'opérateur est la façon la plus propre. Bien sûr, on pourrait aussi dire
ou l'on pourrait dire
Méfiez-vous si vous appelez
.equals()
sur un objet qui pourrait êtrenull
ou vous aurez unNullPointerException
. Dans ce cas, quelque chose comme...... serait en garde contre un
NullPointerException
et être vrai si ils sont pas égaux, y compris les deux n'étant pasnull
. Tout à fait d'un cerveau-twister hein? Je pense que la logique est bonne, si laid. C'est pourquoi j'écris unStringUtil
classe contenant cette logique dans de nombreux projets!C'est pourquoi il est mieux de la convention d'invoquer la
.equals()
méthode sur la chaîne littérale plutôt que la Chaîne que vous faites des tests.OriginalL'auteur Alex Worden
De mettre le "!" dans de de jack. Qui permettra de résoudre, si je comprends correctement à la question.
OriginalL'auteur user2443505