Soucis avec un test d'égalité sur une chaine de caractère

Résolu
caranille - 14 févr. 2013 à 22:09
 caranille - 15 févr. 2013 à 11:29
Bonjour, je suis confronté à un petit soucis je viens de faire un petit script qui demande des informations pour la création d'un compte et j'ai donc fait un test d'égalité pour vérifier si le mot de passe entré la première fois et le même que la seconde

Voici le code:

import java.util.Scanner;

public class Index 
{
public static void main(String[] args) 
{
System.out.println("Caranille NG 0.1");

//Demande du pseudo
System.out.print("Quelle pseudo souhaitez-vous utiliser ? :");
Scanner RecevoirPseudo = new Scanner(System.in);
String pseudo = RecevoirPseudo.nextLine();

//Demande du mot de passe
System.out.print("Mot de Passe :");
Scanner RecevoirMdp = new Scanner(System.in);
String Mdp = RecevoirMdp.nextLine();

//Demande de la confirmation du mot de passe
System.out.print("Confirmer le Mot de Passe :");
Scanner RecevoirMdpc = new Scanner(System.in);
String Mdpc = RecevoirMdpc.nextLine();

//Demande de l'adresse E-mail
System.out.print("Votre adresse E-mail :");
Scanner RecevoirEmail = new Scanner(System.in);
String Email = RecevoirEmail.nextLine();

if (Mdp == Mdpc)
{
Compte caranille = new Compte(pseudo, Mdp, Email, 120, 120, 20, 20, 10, 10, 10, 0, 0, 0, 0, "Admin");
System.out.println("Compte crée avec succès, voici un récapitulatif");
System.out.println("Pseudo : " + Compte.Pseudo);
System.out.println("Email : " + Compte.Email);
System.out.println("PV : " + Compte.PV_Restant + "/" + Compte.PV_Maximum);
System.out.println("PM : " + Compte.PM_Restant + "/" + Compte.PM_Maximum);
System.out.println("Force : " + Compte.Force);
System.out.println("Magie : " + Compte.Magie);
System.out.println("Defense : " + Compte.Defense);
System.out.println("PO : " + Compte.PO);
System.out.println("PC : " + Compte.PC);
System.out.println("Chapitre de l'histoire : " + Compte.Chapitre);
System.out.println("Mission réussies : " + Compte.Mission);
System.out.println("Status : " + Compte.Status);
}
else
{
System.out.println("Les deux mots de passes ne sont pas identiques");
}
}

}


Voici la classe Compte:

public class Compte 
{
static String Pseudo;
static String Mdp;
static String Email;
static int PV_Restant;
static int PV_Maximum;
static int PM_Restant;
static int PM_Maximum;
static int Force;
static int Magie;
static int Defense;
static int PC;
static int PO;
static int Chapitre;
static int Mission;
static String Status;

public Compte()
{
System.out.println("Creation d'un personnage vide :o");
}

public Compte(String pseudo, String mdp, String email, int pv_restant, int pv_maximum, int pm_restant, int pm_maximum, int force, int magie, int defense, int pc, int po, int chapitre, int mission, String status)
{
Pseudo = pseudo;
Mdp = mdp;
Email = email;
PV_Restant = pv_restant;
PV_Maximum = pv_maximum;
PM_Restant = pm_restant;
PM_Maximum = pm_maximum;
Force = force;
Magie = magie;
Defense = defense;
PC = pc;
PO = po;
Chapitre = chapitre;
Mission = mission;
Status = status; 		
}
}


Et lors de l’exécution du programme malgrés que la variable Mdp et Mdpc soit identique ça me met le message comme quoi les deux mots de passe ne sont pas identiques

2 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
15 févr. 2013 à 08:49
Salut,

if (Mdp Mdpc) retournera toujours faux, les String sont des objets, ce sont donc les références mémoires qui sont comparées avec le.

Pour t'en sortir, tu peux utiliser .equals : if (Mdp.equals(Mdpc))
3
Je te remercie énormement.

Cordialement, Jérémy

Sujet Résolu
0
Rejoignez-nous